我在一本书上看到这行代码:
!!(document.all && document.uniqueID);
为什么需要使用双非运算符?不要&&
运算符已将结果转换为 boolean 值?
最佳答案
&&
将返回 document.uniqueID
的值(如果 document.all
具有 '' 以外的任何值,false , null, undefined, 0, NaN
) for document.all && document.uniqueID
:
for Example 45 === (true && 45) //true
来自mozilla.org .
逻辑 AND (&&) expr1 && expr2 如果可以转换为 false,则返回 expr1;否则,返回 expr2。因此,当与 boolean 值一起使用时,如果两个操作数都为 true,则 && 返回 true;否则,返回 false。
所以需要使用!!
将上面的表达式转换为Boolean
。
关于javascript - 双非运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22784611/