#輸出2
當把那個分號去掉,報錯
求問那個分號是起了什麼作用?為什麼去掉會報錯呢?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
不是分號的問題,而是如果沒有;號的阻斷, 解釋器直接把兩條語句合併成:
var xx = function(){}[1,2,3].aa(22);
在使用已()和[]為開頭的語句時, 要尤其註意, 因為這兩個操作符會優先和前面的表達式進行組合, ;號不能省
在某些的;號則不是必須的, 例如;
var a = 1, b=2 a++ b++
這並不會報錯
由於js 並沒有明確的對這樣的行為做出解釋, 而且頁容易混亂, 所以推薦的做法一般都是:不管需不需要;號隔間, 你最好在後尾都加上一句, 除非你明確知道(想要)導致的結果.這種做法稱作最佳實踐
function(){}[1,2,3] 回傳undefined
這裡的分號應該表示的是這一語句結束吧?
Array.prototype.aa = function(){console.log(2);};
我覺得你寫成這樣就看得出來了。
不是分號的問題,
而是如果沒有;號的阻斷, 解釋器直接把兩條語句合併成:
在使用已()和[]為開頭的語句時, 要尤其註意, 因為這兩個操作符會優先和前面的表達式進行組合, ;號不能省
在某些的;號則不是必須的, 例如;
這並不會報錯
由於js 並沒有明確的對這樣的行為做出解釋, 而且頁容易混亂, 所以推薦的做法一般都是:
不管需不需要;號隔間, 你最好在後尾都加上一句, 除非你明確知道(想要)導致的結果.
這種做法稱作最佳實踐
function(){}[1,2,3] 回傳undefined
這裡的分號應該表示的是這一語句結束吧?
我覺得你寫成這樣就看得出來了。