【发布时间】:2015-10-25 16:04:46
【问题描述】:
我刚刚遇到了这段代码
var someBool = !!(o.a && o.a.t);
我正要删除双重否定,然后意识到它强制 someBool 成为布尔值...查看 on the MDN,我找到了这个例子
a5 = "Cat" && "Dog"; // t && t returns "Dog"
根据我在其他语言方面的经验,这似乎不典型。我希望逻辑和操作 总是 返回一个布尔值。谁能解释一下为什么 Javascript 支持这个用例?
另外,将我发送到这个方向的代码是强制使用逻辑与的布尔值的最佳方法吗?我知道new Boolean,但这不会返回像双重否定这样的原始类型,所以也许这就是要走的路吗?
【问题讨论】:
标签: javascript boolean-expression