亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js是如何判斷代碼塊和對象的?

js是如何判斷代碼塊和對象的?

子衿沉夜 2018-10-23 13:10:11
看上圖的結果。第一個測試表示代碼塊。a:1可以理解為js保留的goto寫法。所以看到的不加括號的,都是被解釋為了代碼塊。加上個括號就被解釋為了對象。按照我的理解。為表達式加上括號代表立即執行。為語句加上括號 僅代表分組操作符。初步理解 代碼塊是無法加括號的,所以此處自動解釋為了對象?以上的結論與我一直以來的理解所違背。
查看完整描述

1 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

其實問題是在于{}的語法二意性。
你在控制臺里輸入{a:1}[1]的時候,{}并不是對象字面量的語法,而是block,類似于這種

{    // a是一個label
    a:      1;
};
[1];

如果{}前面沒有其他符號,就會被當成block語法,代表開一個新的作用域。

你的{a:1,}[]代碼被解析成這樣:

{    // label
    a:        1,
};

[];

很明顯語法錯誤。


查看完整回答
反對 回復 2018-11-04
  • 1 回答
  • 0 關注
  • 709 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號