【发布时间】:2014-11-24 16:36:47
【问题描述】:
我已经看到几个问题解释了为什么 0 == "" 在 JavaScript 中是 true,但我还有一个更深层次的问题。
因此,为什么0 == "" 在 JavaScript 中是 true 的答案是字符串 "" 被转换为数字,零长度字符串被转换为零数字,但这与 [9.3.1 paragraph of ECMA-262](http://www.ecma-international.org/ecma-262/5.1/#sec-9.3.1) 的说法是一致的字符串应该使用给定的正式语法进行解析,如果失败,则将此类字符串转换为NaN。当我查看这个规范时,我认为"" 不是字符串数字文字,它应该被解析为NaN 和NaN 不等于0.0。
那么为什么上面的推测是不正确的,0 == "" 实际上是true?
提前致谢。
【问题讨论】:
-
StringNumericLiteral ::: [empty]的MV为0。
-
哦,谢谢。我需要更加专心。 :)
标签: javascript ecmascript-5 ecma262