javascript - 双非运算符

标签 javascript boolean negation

我在一本书上看到这行代码:

!!(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/

相关文章:

javascript - 网络 worker - 他们是如何工作的?

ruby-on-rails - 为什么我在带有 Postgresql 的 Rails 应用程序中使用 boolean 字段时收到 ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR?

插入 BOOL 的 Objective-C 字典

json - jq:当数组中有任何值时选择

正则表达式:用否定解决正则表达式

node.js - 否定正则表达式中的反向引用

javascript - 如何在js split中使用特殊文本字符进行正则表达式分割

javascript - 更改div背景图片的不透明度

JavaScript按照PHP的做法将 boolean 值转换为字符串

javascript - 谷歌数据表 : Return a column object