为什么在使用&时在IF语句中有两个!!
可能重复:
是什么 !! (不)没有运算符在JavaScript中?
我正在浏览一些代码,并看到如下所示的IF语句。 谁能告诉我为什么有两个!!而不是一个? 我从来没有见过这个,也无法在Google上挖掘任何东西,因为它忽略了特殊字符。
if (!!myDiv && myDiv.className == 'visible') {
}
double not运算符用于将变量转换为boolean
类型。 dobule nots互相取消,但看到!
返回true
或false
,你只会得到两个输出中的一个。
例如,
!!0 == true
所以
!!myDiv == true
将myDiv
转换为布尔值,并对照true对其进行测试。 !!myDiv
只会给true
或false
。
双重( !!
)将该值转换为一个真正的布尔值。 第一次爆炸“不是”将潜在的真/假价值转化为适当的布尔值,第二次爆炸的“不是”返回值应该是合适的布尔值。
&
是一个按位比较(导致值> = 0)。 &&
是一个逻辑比较(导致真或假)。 =
是赋值(总是评估为真)。 ==
是一个逻辑比较(导致真或假)。