0 == ''
左操作数的类型为数字(Number)。
右操作数的类型为字符串(String)。
在此情况下,右操作数会被强制转换为数字类型:
0 == Number('')
这导致
0 == 0
从抽象相等比较算法(编号为4)中得到以下内容:
如果 x 的类型为数字且 y 的类型为字符串,则返回比较结果 x == ToNumber(y)。
if (0)
或者 if("")
中单独使用它们,两个都是假值,但是在 ==
比较中情况就不同了。(不确定为什么Šime也在上面留下了一条评论说“因为两个值都是假值”。) - nnnnnn
:)
- Šime Vidas==
比较总是会评估为真。但是后来我想起了NaN != NaN
...整个想法就崩溃了,哈哈。 - Šime Vidas