gpt4 book ai didi

javascript - 这个表达式是什么意思 "!!"

转载 作者:数据小太阳 更新时间:2023-10-29 05:41:33 24 4
gpt4 key购买 nike

为什么有人会用这样的表达方式

if(!!window.JSON) alert('exists');

不仅仅是

if(window.JSON) alert('exists');

?

“!!”还有其他用法吗?事情?

最佳答案

!! 只会导致 bool 值转换,完全没有必要将此结构与 if 语句一起使用,也在您的第一个代码段中,转换 bool 值的对象没有意义,它将始终为真

唯一可以强制为 false 的值是 nullundefinedNaN0 和空字符串,当然还有 false 任何其他内容都会强制转换为 true

什么时候使用 !! 是您想要确保获得 bool 结果的时候,例如当使用逻辑 &&| 时| 运算符。

这些运算符可以返回操作数的,而不是 bool 结果,例如:

true && "foo"; // "foo"
"foo" || "bar" ; // "foo"

假设您有一个测试两个值的函数,并且您期望得到一个 bool 值结果:

function isFoo () {
return 0 && true;
}

isFoo(); // returns 0, here it makes sense to use !!

编辑:查看您的编辑,if (!!window.JSON) 就像我之前所说的那样是多余的,因为 if statement本身将进行 bool 转换 internally当评估条件表达式时。

关于javascript - 这个表达式是什么意思 "!!",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3059546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com