js双感叹号判断
JS 判断 感叹号
2023-09-11 14:17:05 时间
今天看qunit源代码,发现一段很奇怪的代码,虽然能领会他的意思,但是不明白双感叹号起到的作用。
function id( name ) { return !!( typeof document !== "undefined" && document && document.getElementById ) && document.getElementById( name ); }
然后去网上查了些资料,他相当于三元运算符,返回boolean值。
var ret = !!document.getElementById
等价于:
var ret = document.getElementById ? true : false;
当值是非空字符串和非零数字返回true,当值是空字符串、0或者null返回false。
var a = " "; alert(!!a); //true var a = "s"; alert(!!a); //true var a = true; alert(!!a); //true var a = 1; alert(!!a); //true var a = -1; alert(!!a); //true var a = -2; alert(!!a); //true var a = 0; alert(!!a); //false var a = ""; alert(!!a); //false var a = false; alert(!!a); //false var a = null; alert(!!a); //false
相关文章
- JS框架_(JQuery.js)圆形多选菜单选项
- js中实现多态
- Node.js文件操作一
- js中数组的splice()方法
- [Node.js] Mock an API for Local Development in React with Mirage JS
- [Vue] Dynamic Vue.js Components with the component element
- uni-app:npm安装js-md5第三方库(hbuilderx 3.7.3 / npm 9.5.0)
- uni-app:template、js、css中判断平台(hbuilderx 3.6.18)
- javascript (js)判断手机号码中国移动、中国联通、中国电信
- 华为OD机试 - 判断一组不等式是否满足约束并输出最大差(Java & JS & Python)
- 华为OD机试 - 用户调度问题(Java & JS & Python)
- js判断手机端打开还是PC端
- js:常见对象的类型判断typeof和布尔值Boolean
- JS:使用Mock.js生成随机数据,拦截 Ajax 请求
- JS:crypto-js实现AES加密解密
- return阻止js继续向下执行
- js判断数字的方法
- 【JS高级】js面向对象三大特性之多态_07