What is the difference between if(!!condition) and if(condition)
我经常看到使用
1 2 3 | if(!!value){ doSomething(); } |
对比:
1 2 3 | if(value){ doSomething(); } |
如果有的话,功能上的区别是什么?一个比另一个好吗?如果有的话,选择使用其中一个的条件是什么?
技术上没有。double-bang
在您发布的代码中,
这只是一种更明确的方法来测试一个值的"真实性"。
下面将"强制"
1 | !!(value) |
例如,非空字符串
1 | !!"a" // true |
另一个空字符串示例
1 | !!"" // false |
但是,如果只使用
1 | if (value) // ... |
那么下面的值是javascript中的
0 -0 null "" (空字符串)false undefined NaN
其他都是
这个!!确保结果类型是布尔型(真或假)。
javascript:alert("foo")-->foo
javascript:警报!!"FO""->假
javascript:警告(!!"foo")-->true
javascript:警告(!!空)->假
他们这样做是为了确保$('row')不为空。
打字的时间比$(‘row’)短!= NULL?真:假。