天天看點

編寫js語句結束時保持良好的習慣-源于身邊例子

記錄以下資訊,源于一件事情,一位同僚,每次我改他的js代碼,發現語句結束都不使用分号作為結束。長長的一串,讀起來比較吃力。

即便語句的結束不使用分号結束,代碼仍然不會報錯,正常運作,是以不少程式員懶得去管這個。

使用分号有兩個好處:1、其他人讀你的代碼可讀性好。2、減少不必要的文法錯誤。在網際網路為了減少帶寬,壓縮js的檔案并成一行,不會出問題(看jquery

壓縮版就知道壓縮後的js是并在一行的)。其實我還發現,當使用代碼編輯器進行格式化源碼的時候,可以避免問題

看下面代碼:

..............前面代碼

                                })   //這裡作為語句結束,應該有個分号

                                return false       //這裡也要有分号,不加其實不會報錯

                            }

.....後續代碼

看最後的"})"應該要以分号結束語句

-----------------------------------------------

js語句的結束符規律

如果不使用分号結束,在某些情況下是可行的。因為js解析器會去判斷此行(在這裡就是"})"所在的行),是否會有後續代碼,如果沒有。就預設語句結束(也就是把空的當成語句結束)。

js解析器會把新行當成新的代碼語句。如果有後續呢?這樣子就把後面代碼也當成同一句進行處理。是以最好是養成寫分号作為語句結束符的習慣。為了節省網絡帶寬,提高網站速度,當需要壓縮js腳本的時候。就會把所有的代碼并到一行,這樣的情況下,如果沒有分号,就無法明确知道語句的結束了,就會出現文法錯誤

....

}) //這裡本來是語句結束符,不加分号";"也不會報錯,原因是後面沒有任何内容了,是以js解析器會自動把這裡當成語句結束

var userid = "{$_userid}";

如果壓縮js代碼,就會變成如下:

...})var userid = "{$_userid}";

出現文法錯誤。

歸納:養成一個語句結束加";"的習慣是很好的,可以避免很多問題

繼續閱讀