2016-05-02 51 views
-7

我知道在JavaScript中,Array不支持+操作,所以+[]將轉換爲+ [].toString(),但我不明白,爲什麼+""等於零。爲什麼+ []或+「」等於0在javascript

+0

我認爲這是一個一元運算符。 – evolutionxbox

+0

它轉換爲零,因爲ECMAScript規範中有一個特定的規則,要求在執行數字轉換時以這種方式轉換空字符串。 –

+0

ECMA規範中的序列很難遵循並複製到此處(特別參見https://tc39.github.io/ecma262/2016/#sec-tonumber),我們難道不能找到許多相同問題之一嗎? –

回答

-1

由於空字符串("")是在JavaScript false(如JavaScript是ECMAScript中的一種方言,和ECMAScript語言規範清楚地定義此行爲)+一元運算符轉換false0

參考http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf

+0

要添加的任何鏈接? – evolutionxbox

+0

@evolutionxbox檢查現在.. – void

+1

這不是因爲空字符串是錯誤*(我假設你的意思是「falsey」)*。還有其他有價值的值不會被轉換爲零。 –

相關問題