雖然試圖調試一些錯誤的一段JavaScript代碼,我發現了一個線,看起來像在源文件中的明顯錯誤:爲什麼false ++在Firefox中產生一個SyntaxError而在Chrome中產生ReferenceError?
false++;
我不爲已瞭解爲什麼這種說法在所有瀏覽器的行爲不同。
- 在Chrome中,我得到一個ReferenceError,整個腳本沒有運行。
- 在Firefox中,我得到一個SyntaxError,整個腳本沒有運行。
- 在Internet Explorer中,我收到一個SyntaxError,腳本只運行到發生錯誤的行。
是不是允許不同的瀏覽器以不同的方式處理同樣的JavaScript?
我知道錯誤是什麼,以及如何解決它,但不應該至少錯誤類型由規範強制?
規格說明是什麼? – Teemu
@Teemu我不知道。你做? – Lynn
它應該是一個參考錯誤,參見[* ECMA-262§12.4.1*](http://ecma-international.org/ecma-262/7.0/index.html#sec-update-expressions-static-semantics -early-errors):*如果LeftHandSideExpression的IsValidSimpleAssignmentTarget爲false,則爲早期引用錯誤。*後綴運算符試圖修改該值,* false *是不可變的,因此不是有效的簡單賦值目標。 – RobG