闡明ASI 的適用性
自動分號插入(ASI)是一項JavaScript 功能當分號遺失時,會自動在程式碼中插入分號,並且不會導致語法錯誤。但是,它只適用於特定的語句類型:
依照ECMAScript 規範的ASI 規則>
ECMAScript 規範定義了三種場景對於ASI:1。遇到無效令牌
語法不允許的違規令牌會觸發分號插入,如果:2.輸入流結束
如果輸入流結束而解析器無法解析完整的程序,則會在最後插入分號。3.受限生產
當一個令牌被允許但屬於「受限生產」(例如,返回或繼續而不換行)時,會在其前面插入一個分號。範例:
return "something";
return; "something";
規則的例外
規則的例外
if (x) return y;
規則的例外>但是,規則有一個例外。如果 ASI 會導致語法錯誤,則不會插入它。例如,在以下程式碼中:
if (x) return; y;
ASI 會將其轉換為:
這會導致語法錯誤,因為 y 本身不是有效的語句。以上是JavaScript 的自動分號插入總是能防止錯誤嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!