探讨js中的双感叹号判断_javascript技巧
程序员文章站
2022-04-20 23:33:35
...
今天看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
复制代码 代码如下:
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
推荐阅读
-
IE6中使用position导致页面变形的解决方案(js代码)_javascript技巧
-
JS中动态添加事件(绑定事件)的代码_javascript技巧
-
让多个输入框中的内容同时变化的js代码_javascript技巧
-
IE中JS跳转丢失referrer问题的2个解决方法_javascript技巧
-
js 实现打印网页中定义的部分内容的代码_javascript技巧
-
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]_javascript技巧
-
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容_javascript技巧
-
js 实现打印网页中定义的部分内容的代码_javascript技巧
-
js判断undefined类型,undefined,null, 的区别详细解析_javascript技巧
-
Javascript中定义方法的另类写法(批量定义js对象的方法)_javascript技巧