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

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

有沒有童鞋遇到過同樣的問題:請問例1第一個alert為什么會是undefined? 與例2代碼有啥區別,為啥是 2 呢?請問執行流程 數據傳遞是怎樣的?

有沒有童鞋遇到過同樣的問題:請問例1第一個alert為什么會是undefined? 與例2代碼有啥區別,為啥是 2 呢?請問執行流程 數據傳遞是怎樣的?

Helenr 2019-10-08 10:01:08
請問詳細的執行流程/數據傳遞是怎樣的?好像與作用域、變量聲明提升有關//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 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

變量提升。例1與下列代碼等效。
vara=1;
(functiontest(){
vara;
alert(a);
a=2;
alert(a);
})();
                            
查看完整回答
反對 回復 2019-10-08
?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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