數組無法使用 forEach() 方法 - 分號的重要性


問題描述:

函數的結構如上圖所示,在調用該函數的時候,瀏覽器報錯:

 

分析原因:

在 js 的語法中,如果語句獨占一行,通常可以省略句末的分號

但實際上 js 解析代碼的時候,只有在句末缺少分號就無法正常運行的時候,才會自動填補分號

如果前后的語句能夠組成一個語法正確的語句,則不會自動填補分號

上面的函數中,js 實際處理的代碼為:

function test(a, b, c) {
  var x = a + b[a, b, c].forEach(function(e){
    // ...
  })
}

通常來講,如果語句以 "("、"["、"/"、"+"、"-" 開始,該語句極有可能和前一條語句一起解析

但如果語句以 "++" 或者 "--" 開始的時候,會優先作為前綴操作符進行解析

如圖的語句會被解析為 x; ++y 而不是 x++; y

 

另外,如果語句以 return、continue、break 結束,js 會在換行處自動填補分號

 

解決方案:

在語句末尾手動添加分號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM