双感叹号(!!)在javascript中是如何工作的?
我正在进行“发现流星”的演示,正在努力弄清楚“返回”的确切方式!!用户ID;'工作地点:双感叹号(!!)在javascript中是如何工作的?,javascript,Javascript,我正在进行“发现流星”的演示,正在努力弄清楚“返回”的确切方式!!用户ID;'工作地点: 是逻辑求反或“not”运算符是两次。这是一种将“truthy”或“falsy”值分别转换为true或false的方法。给定一个布尔值,将否定该值,即!true产生false,反之亦然。给定布尔值以外的值,该值将首先转换为布尔值,然后求反。例如,!未定义的将首先将未定义的转换为假,然后将其取反,得到真。应用第二个运算符(!!未定义)产生false,因此实际上是!!未定义的将未定义的转换为假 在JavaScri
是逻辑求反或“not”运算符<代码>代码>是代码>两次。这是一种将“truthy”或“falsy”值分别转换为true
或false
的方法。给定一个布尔值,
将否定该值,即!true
产生false
,反之亦然。给定布尔值以外的值,该值将首先转换为布尔值,然后求反。例如,!未定义的
将首先将未定义的
转换为假
,然后将其取反,得到真
。应用第二个
运算符(!!未定义
)产生false
,因此实际上是!!未定义的
将未定义的
转换为假
在JavaScript中,值false
,null
,未定义的,0
,-0
,NaN
,和'
(空字符串)都是“假”值。所有其他值都是“真实的”。这是的真值表代码>和代码>应用于各种值:
value | !value | !!value
-----------+--------+-------
false | true | false
true | false | true
null | true | false
undefined | true | false
0 | true | false
-0 | true | false
1 | false | true
-5 | false | true
NaN | true | false
'' | true | false
'hello' | false | true
谢谢那真的很有帮助!这是迄今为止我所看到的最好的解释——很好的答案!非常感谢你!值得注意的(如“hello”)!!“false”
#=>true
它似乎与下面这个重复的问题一样有效,并且有大量的答案:
value | !value | !!value
-----------+--------+-------
false | true | false
true | false | true
null | true | false
undefined | true | false
0 | true | false
-0 | true | false
1 | false | true
-5 | false | true
NaN | true | false
'' | true | false
'hello' | false | true