【发布时间】:2014-07-04 18:39:22
【问题描述】:
如标题所述,为什么会这样:
> !!1=="1"
等于
True
和
> !!2=="2"
等于:
False
同样,为什么> "1"==true等于true和> "2"==true等于false
我很困惑。这些只是 JS 中的错误还是这里发生了什么?
【问题讨论】:
-
@Michael: 2==“2” 对你来说等于假吗?对我来说它工作正常jsfiddle.net/HGEcs
-
这就是为什么你应该始终使用
===在 JavaScript 中进行比较。 -
不,这不是错误。如果您不知道布尔值的含义,则根本不应该将布尔值与字符串进行比较。
-
取决于您所说的“错误”。在通常意义上,不,这不是错误 - 但它是设计缺陷。
-
请注意这些不是重复的。我们这里考虑的是比较布尔值到数字字符串的情况,而不是类似的情况。
标签: javascript