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

問題描述:瀏覽器

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

 

分析緣由:spa

在 js 的語法中,若是語句獨佔一行,一般能夠省略句末的分號3d

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

若是先後的語句可以組成一個語法正確的語句,則不會自動填補分號blog

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

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

一般來說,若是語句以 "("、"["、"/"、"+"、"-" 開始,該語句極有可能和前一條語句一塊兒解析function

但若是語句以 "++" 或者 "--" 開始的時候,會優先做爲前綴操做符進行解析class

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

 

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

 

解決方案:

在語句末尾手動添加分號

相關文章
相關標籤/搜索