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

王滔發表於2014-02-14

記錄以下資訊,源於一件事情,一位同事,每次我改他的js程式碼,發現語句結束都不使用分號作為結束。長長的一串,讀起來比較吃力。
即便語句的結束不使用分號結束,程式碼仍然不會報錯,正常執行,所以不少程式設計師懶得去管這個。

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

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

看下面程式碼:






..............前面程式碼

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

                                

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

                            }

.....後續程式碼



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


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

js語句的結束符規律

-----------------------------------------------
如果不使用分號結束,在某些情況下是可行的。因為js解析器會去判斷此行(在這裡就是"})"所在的行),是否會有後續程式碼,如果沒有。就預設語句結束(也就是把空的當成語句結束)。
js解析器會把新行當成新的程式碼語句。如果有後續呢?這樣子就把後面程式碼也當成同一句進行處理。所以最好是養成寫分號作為語句結束符的習慣。為了節省網路頻寬,提高網站速度,當需要壓縮js指令碼的時候。就會把所有的程式碼併到一行,這樣的情況下,如果沒有分號,就無法明確知道語句的結束了,就會出現語法錯誤


看下面程式碼:


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

var userid = "{$_userid}";

 





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


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


出現語法錯誤。

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

相關文章