理解双感叹号

时间:2016-11-11 21:16:41

标签: javascript

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

据我所知,它将值转换为布尔值。所以我要说我有以下代码:

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

我不能忽略!!,我会得到相同的结果:

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

添加!!可以获得什么?它不是布尔值吗?

1 个答案:

答案 0 :(得分:6)

!!的目的是将任何类型的truthy或falsey值规范化为相应的布尔值。

如果已经知道该值是布尔值,例如比较运算符的结果,那么它就没有任何意义,而且它是多余的。所以在你给出的例子中它没用。