为什么在使用&时在IF语句中有两个!!

可能重复:
是什么 !! (不)没有运算符在JavaScript中?

我正在浏览一些代码,并看到如下所示的IF语句。 谁能告诉我为什么有两个!!而不是一个? 我从来没有见过这个,也无法在Google上挖掘任何东西,因为它忽略了特殊字符。

if (!!myDiv && myDiv.className == 'visible') {
}

double not运算符用于将变量转换为boolean类型。 dobule nots互相取消,但看到! 返回truefalse ,你只会得到两个输出中的一个。

例如,

!!0 == true

所以

!!myDiv == true

myDiv转换为布尔值,并对照true对其进行测试。 !!myDiv只会给truefalse


双重( !! )将该值转换为一个真正的布尔值。 第一次爆炸“不是”将潜在的真/假价值转化为适当的布尔值,第二次爆炸的“不是”返回值应该是合适的布尔值。


  • &是一个按位比较(导致值> = 0)。
  • &&是一个逻辑比较(导致真或假)。
  • =是赋值(总是评估为真)。
  • ==是一个逻辑比较(导致真或假)。
  • 链接地址: http://www.djcxy.com/p/12661.html

    上一篇: Why two !!s in an IF statement when using &&?

    下一篇: What is the purpose of using !! in JavaScript?