Javascript if语句双感叹号运算符冗余

Javascript if statement double exclamation mark operator redundancy

本问题已经有最佳答案,请猛点这里访问。

如果我有一个没有条件运算符的if语句,使用双感叹号运算符-!!有关系吗?

例如。。。

1
2
3
if ([]) {

}

对…

1
2
3
if (!!([])) {

}

根据我的理解,操作者基本上是在问:"这个值是真的吗?"在这种情况下,它是多余的。在所有类似的情况下都是多余的吗?

编辑:

1
2
if (x) { console.log("hi"); }
if (!!x) { console.log("hi"); }

这两种打印方式是否都适用于任何x?这是我的问题。


对。这两个都将为任何Boolean(x) === true打印。

有关更多细节,您可以在javascript中找到truthy、falsy和boolean。

为了便于理解,您可以使用Boolean([]) // true