以下javascript中的含义是什么? !!“假”

时间:2014-01-26 11:53:17

标签: javascript

以下内容在 javascript 中的含义是什么?如何评估结果为真。

!!"false"

是否需要使用这样的表达。

5 个答案:

答案 0 :(得分:1)

每个非空字符串都被视为true。因此,当你双重否定某些事情时,你会再次成真。

像这样的代码可用于从非布尔变量中获取布尔值,例如。

答案 1 :(得分:1)

这意味着不是一个真正的值字符串,所以你最终会得到true(布尔值)。

答案 2 :(得分:1)

啊,如果你假设“false”评估为布尔值false,那么这个很棘手。知道,除非它是一个空字符串,“”,字符串将始终评估为true。所以,你基本上是在说,不是不是真的。双阴性取消,因此,是真的。

答案 3 :(得分:1)

您应该记得Java中的哪些内容 truthy falsy - 哪些项目在逻辑上下文中转换为true和false:

Falsy

  1. false
  2. null
  3. undefined
  4. 0
  5. NaN
  6. ''
  7. Truthy

    1. true
    2. 非零数字(NaN除外)。
    3. 非空字符串
    4. 对象,包括基元的包装版本。
    5. 阵列
    6. 请注意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或空字符串(“”)。