輸出2當把那個分號去掉,報錯求問那個分號是起了什么作用?為什么去掉會報錯呢?
關于一個分號的問題,為什么沒有分號就報錯了呢?
汪汪一只貓
2018-11-21 15:14:36
TA貢獻1842條經驗 獲得超22個贊
不是分號的問題,
而是如果沒有;號的阻斷, 解釋器直接把兩條語句合并成:
var xx = function(){}[1,2,3].aa(22);
在使用已()和[]為開頭的語句時, 要尤其注意, 因為這兩個操作符會優先和前面的表達式進行組合, ;號不能省
在某些的;號則不是必須的, 比如;
var a = 1, b=2a++ b++
這并不會報錯
由于 js 并沒有明確的對這樣的行為做出解釋, 而且頁容易混亂, 所以推薦的做法一般都是:
不管需不需要;號隔斷, 你最好在后尾都加上一句, 除非你明確知道(想要)導致的結果.
這種做法稱作最佳實踐
舉報