js中分號的討論

zifeiyu發表於2018-12-04

由於js中又一個自動插入分號的機制,所以實際我們在寫程式碼的過程中很少會關注分號的問題;現在的趨勢基本也就是不新增分號;甚至eslint的標準檢查模式中也禁止新增分號。

不過這裡還是有一個些不常見的小坑

如果一個語句的開頭以“括號,方括號,正則開頭的斜槓,加號,減號”。實際使用中最常遇到的應該是括號開頭,比如js中的立即執行函式;但是隨著es6的使用範圍越來約普遍,立即執行函式這種駭客機制也很少用到了。

下面舉個例子:

var a = 'hello'
// 這裡會報錯
(function() {
  console.log(arguments)
})(1,2,3)
// 這樣寫就不會報錯
;(function() {
  console.log(arguments)
})(1,2,3)
複製程式碼

另外如果立即執行函式處於js檔案的開頭也不會報錯

(function() {
  console.log(arguments)
})(1,2,3)
var a = 'hello'
複製程式碼

相關文章