2016-11-11 259 views
-1

我试图理解双重感叹号的确切含义。是的,我看到this question,有很多答案。所以我原则上知道它的作用,但我不知道为什么需要使用它。了解双重感叹号

从我的理解,它将值转换为布尔值。所以我们可以说我有以下代码:

var myBool = !!(index === 0 || index > len); 

我不能就这么走了!!,我会得到相同的结果:

var myBool = (index === 0 || index > len); 

我获得通过添加!!什么?它不是已经是布尔值吗?

+0

好的,你在另一个问题中不了解的是什么?如果它已经是一个布尔值,那没有任何意义。 –

+1

您将得到相同的结果。在这种情况下,这是多余的。 – vlaz

+0

@Barmar,我刚刚关闭并重新打开。你读过OP写过什么了吗? –

回答

5

!!的目的是规范任何类型的真值或伪值到相应的布尔值。

如果该值已知为布尔值,比如比较运算符的结果,那就没有意义了,这是多余的。所以在你给的例子中没用。