爲什麼第一行給出錯誤,儘管第二行和第三行工作正常?1.toString()Javascript中的SyntaxError
1.toString(); // SyntaxError
(1).toString(); // OK
1['toString'](); // OK
爲什麼第一行給出錯誤,儘管第二行和第三行工作正常?1.toString()Javascript中的SyntaxError
1.toString(); // SyntaxError
(1).toString(); // OK
1['toString'](); // OK
解析器正試圖把1.
作爲浮點文字的開始 - 只有toString
把它變成一個無效的號碼。
比較:
1.0.toString()
的.
呈現不確定性。它是一個小數,還是屬性訪問器?
解釋器將其視爲小數,因此您可以使用..
來同時允許小數和屬性語法。
1..toString();
或者使用您顯示的其他方式之一來解決歧義。
在(1).toString()
中,(1)強制它在.toString()之前評估,因此它工作。 在1.toString()
中,1不是有效的標識符,因此它不起作用。
而「他們」想讓javascript嚴格鍵入! – RobG
別擔心他。規範作者正在嚴格打印。 – ambodi