我已經看到幾個問題,解釋爲什麼0 == ""
是true
在JavaScript,但我有一個更深的問題。JavaScript的(0 ==「」)=== true與ECMA-262類型轉換規則是否一致?
因此,答案爲什麼是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 ::: [空]的MV是0. * – 2014-11-24 16:40:01
哦,謝謝。我需要更加細心。 :) – yaromir 2014-11-24 16:44:09