文章詳情頁
javascript - 關于一個分號的問題,為什么沒有分號就報錯了呢?
瀏覽:91日期:2022-12-15 13:50:38
問題描述
輸出2
當把那個分號去掉,報錯
求問那個分號是起了什么作用?為什么去掉會報錯呢?
問題解答
回答1:不是分號的問題,而是如果沒有;號的阻斷, 解釋器直接把兩條語句合并成:
var xx = function(){}[1,2,3].aa(22);
在使用已()和[]為開頭的語句時, 要尤其注意, 因為這兩個操作符會優先和前面的表達式進行組合, ;號不能省
在某些的;號則不是必須的, 比如;
var a = 1, b=2a++b++
這并不會報錯
由于 js 并沒有明確的對這樣的行為做出解釋, 而且頁容易混亂, 所以推薦的做法一般都是:不管需不需要;號隔斷, 你最好在后尾都加上一句, 除非你明確知道(想要)導致的結果.這種做法稱作最佳實踐
回答2:function(){}[1,2,3] 返回undefined
回答3:這里的分號應該表示的是這一條語句結束吧?
Array.prototype.aa = function(){console.log(2);};
我覺得你寫成這樣就看得出了。
標簽:
JavaScript
排行榜
