其實我是不喜歡寫分號的,好不容易能不寫分號,像 python 一樣,多爽。
幾年前,各種各樣的書大致上都推薦你加分號。
幾年前,曾經由於構建工具有一些問題,導致不加分號可能會出問題。
jquery依然留着分號,vue源碼不用分號, react源碼規范需要分號。
不過,最關鍵的,還是看團隊的代碼風格。
winter推薦寫,但是尤雨溪曾經在知乎說
真正會導致上下行解析出問題的 token 有 5 個:括號,方括號,正則開頭的斜杠,加號,減號。我還從沒見過實際代碼中用正則、加號、減號作為行首的情況,所以總結下來就是一句話:一行開頭是括號或者方括號的時候加上分號就可以了,其他時候全部不需要。
哦當然再加個反引號。可是寫分號已經習慣了,又何必花力氣改習慣去掉它。不加只要不寫出bug,也很好。
反正分號有和沒有,對eslint fix來說,只是瞬間的事。。。
不過在這里,總結一下 no LineTerminator here 的語句。
-
continue
outer:for(var j = 0; j < 10; j++) for(var i = 0; i < j; i++) continue /*no LineTerminator here*/ outter
-
break
outer:for(var j = 0; j < 10; j++) for(var i = 0; i < j; i++) break /*no LineTerminator here*/ outter
-
return
function f(){ return /*no LineTerminator here*/1; }
-
++ --
i/*no LineTerminator here*/++ i/*no LineTerminator here*/--
-
throw | exception
throw/*no LineTerminator here*/new Exception("error")
-
async
const f = x/*no LineTerminator here*/=> x*x
-
箭頭函數箭頭后面
const f = x/*no LineTerminator here*/=> x*x
-
yield
function *g(){ var i = 0; while(true) yield/*no LineTerminator here*/i++; }