js代碼要不要加分號


最近寫了點node的項目,習慣了go語言的后面不帶分號,那么js的項目,要不要帶分號呢

首先,我們來了解下javascript的自動填充規則

在說要不要寫分號之前,先了解一下javascript自動填補分號的規則。

在《javascript權威指南》中有一段話“如果一條語句以“(”、“[”、“/”、“+”、或“-”開始,那么它極有可能和前一條語句合在一起解釋。”,寫javascript的時候,如果每條語句都獨自寫成一行,是不需要寫分號的,但是下一行如果遇到上面提到的符號,javascript可能會與下一行合並解釋。其中以“/”、“+”和“-”開頭的語句在實現項目中比較少見,以“(”和“[”開頭的則非常常見。下面各找了一個例子來說明。

以“(”開頭的情況:

a = b
(function() {

})()

javascript會解釋成:

a = b(function() {

})();

以“[”開頭的情況

a = function() {

}
[1,2,3].forEach(function(item) {

});

 javascript會解釋成:

a = function() {
}[1,2,3].forEach(function(item) {

});

以“/”開頭的情況

a = 'abc'
/[a-z]/.test(a)

期望的結果為true,但是javascript會解釋成,接着就報錯了:

a = ‘abc’/[a-z]/.test(a);

以“+”開頭的情況

a = b
+c

javascript會解釋成

a = b + c;

以“-”開頭的情況

a = b
-c

javascript會解釋成

a = b - c;

如果在return、break、continue、throw等關鍵字后面換行,javascript會在換行處填補分號。如:

return
{
    a: 1
}

會解釋成:

return;
{
    a: 1
}

如果“++”或“–”運算符作為表達式的后綴時,表達式應該寫在同一行,否則也會解釋有誤

例如:

x
++
y

會解釋成:

x;
++y;

而不是

x++;
y;

要不要寫分號

哈哈,可以去參考大佬的回答

 


免責聲明!

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



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