寫 JavaScript 到底寫不寫分號呢???


其實我是不喜歡寫分號的,好不容易能不寫分號,像 python 一樣,多爽。

幾年前,各種各樣的書大致上都推薦你加分號。

幾年前,曾經由於構建工具有一些問題,導致不加分號可能會出問題。

jquery依然留着分號,vue源碼不用分號, react源碼規范需要分號。

不過,最關鍵的,還是看團隊的代碼風格。

winter推薦寫,但是尤雨溪曾經在知乎說

真正會導致上下行解析出問題的 token 有 5 個:括號,方括號,正則開頭的斜杠,加號,減號。我還從沒見過實際代碼中用正則、加號、減號作為行首的情況,所以總結下來就是一句話:一行開頭是括號或者方括號的時候加上分號就可以了,其他時候全部不需要。
哦當然再加個反引號。

可是寫分號已經習慣了,又何必花力氣改習慣去掉它。不加只要不寫出bug,也很好。
反正分號有和沒有,對eslint fix來說,只是瞬間的事。。。

不過在這里,總結一下 no LineTerminator here 的語句。

  1. continue

    outer:for(var j = 0; j < 10; j++)
        for(var i = 0; i < j; i++)
            continue /*no LineTerminator here*/ outter
    
  2. break

    outer:for(var j = 0; j < 10; j++)
        for(var i = 0; i < j; i++)
            break /*no LineTerminator here*/ outter
    
  3. return

    function f(){
        return /*no LineTerminator here*/1;
    }
    
  4. ++ --

    i/*no LineTerminator here*/++
    i/*no LineTerminator here*/--
    
  5. throw | exception

    throw/*no LineTerminator here*/new Exception("error")
    
  6. async

    const f = x/*no LineTerminator here*/=> x*x
    
  7. 箭頭函數箭頭后面

    const f = x/*no LineTerminator here*/=> x*x
    
  8. yield

    function *g(){
        var i = 0;
        while(true)
            yield/*no LineTerminator here*/i++;
    }
    


免責聲明!

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



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