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

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

有大佬遇到過這個問題嗎:請問例1第一個alert為什么會是undefined? 與例2代碼有啥區別,為啥是 2 呢?請問執行流程 數據傳遞是怎樣的?求指導!

有大佬遇到過這個問題嗎:請問例1第一個alert為什么會是undefined? 與例2代碼有啥區別,為啥是 2 呢?請問執行流程 數據傳遞是怎樣的?求指導!

元芳怎么了 2019-10-10 17:19:58
請問詳細的執行流程/數據傳遞是怎樣的?好像與作用域、變量聲明提升有關//js例1:vara=1;(functiontest(){alert(a);vara=2;alert(a);})()alert()的第一次調用時顯示“undefined”,第二次調用時顯示“2”。//js例2:vara=1;(functiontest(){alert(a);})()alert()的第一次調用時顯示“1”,來源:https://blog.csdn.net/qingtia...
查看完整描述

2 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

變量提升。例1與下列代碼等效。
vara=1;
(functiontest(){
vara;
alert(a);
a=2;
alert(a);
})();
                            
查看完整回答
反對 回復 2019-10-10
?
江戶川亂折騰

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

變量作用域code1中test里面有a,所以不會讀取外部的變量,當你第一次使用a的時候還未定義,所以是undefinedcode2沒有a,使用上級作用域中的a,所以是1
                            
查看完整回答
反對 回復 2019-10-10
  • 2 回答
  • 0 關注
  • 317 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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