JavaScript 程式碼開頭新增分號

admin發表於2019-02-01

很多朋友可能會注意到,在一些外掛的程式碼起始位置有一個分號(;)。

從表面看,它真的是毫無用處,甚至有些奇怪,所以也有很多朋友會問這麼做的原因是什麼。

引用網上的一個圖片:

a:3:{s:3:\"pic\";s:43:\"portal/201902/01/124925zez38a4ed8qo0xy4.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

可以看到在JavaScript程式碼的起始位置有一個分號。

這樣做是非常有必要的,可以防止一些意外發生,比如當與其他程式碼合併壓縮的時候。

如果不在前面新增一個分號,那麼這個小括號可能會和前面合併的程式碼產生一個語法關聯。

看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
a = b
(function() {
   // code 
})()

上面程式碼的本意如下:

(1).變數b的值賦值給變數a。

(2).然後執行匿名函式。但是JavaScript解析器對上述程式碼的實際解讀如下:

[JavaScript] 純文字檢視 複製程式碼
a = b(function() {
   // code 
})()

b變成了一個函式,引數是匿名函式,這完全背離了原來程式碼的初衷。

使用分號可以進行一個斷句,完全避免了上述類似問題的出現。

更多相關內容可以參閱JavaScript 語句是否省略分號一章節。

相關文章