以下内容在 javascript 中的含义是什么?如何评估结果为真。
!!"false"
是否需要使用这样的表达。
答案 0 :(得分:1)
每个非空字符串都被视为true。因此,当你双重否定某些事情时,你会再次成真。
像这样的代码可用于从非布尔变量中获取布尔值,例如。答案 1 :(得分:1)
这意味着不是一个真正的值字符串,所以你最终会得到true
(布尔值)。
答案 2 :(得分:1)
啊,如果你假设“false”评估为布尔值false,那么这个很棘手。知道,除非它是一个空字符串,“”,字符串将始终评估为true。所以,你基本上是在说,不是不是真的。双阴性取消,因此,是真的。
答案 3 :(得分:1)
您应该记得Java中的哪些内容 truthy 和 falsy - 哪些项目在逻辑上下文中转换为true和false:
false
null
undefined
0
NaN
''
true
NaN
除外)。请注意new Boolean(false)
truthy 。不要包裹原语。
现在!
运算符将false
带到true
并返回。对于任何其他值,它将逻辑解释转换为boolean
,然后翻转它。因此,!"false"
首先将"false"
解释为true
,因为非空字符串是真实的。然后,它计算!true
,并获得false
。
然后,使用第二个!
运算符会将false
转换为true
。给定 truthy 参数x
,!!x
将为true
。鉴于 falsy 参数y
,!!y
将为false
。
答案 4 :(得分:0)
这样做是为了评估一个非布尔值,好像是一个布尔值,任何值都将被评估为真,除了:undefined,null,0,false或空字符串(“”)。