第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

JS執(zhí)行順序

JS執(zhí)行順序

sherryliu 2017-12-20 20:24:39
<!DOCTYPE html><html><head>? ? <title></title>? ? <script type="text/javascript">? ? ? ? function addLoadEvent(func){//記為①? ? ? ? ? ? var oldonload=window.onload;? ? ? ? ? ? if(typeof window.onload!='function'){? ? ? ? ? ? ? ? window.onload=func;? ? ? ? ? ? }else{? ? ? ? ? ? ? ? window.onload=function(){? ? ? ? ? ? ? ? ? ? oldonload();? ? ? ? ? ? ? ? ? ? func();? ? ? ? ? ? ? ? }? ? ? ? ? ? }? ? ? ? }? ? ? ? addLoadEvent(a);//記為②? ? ? ? function a(){//記為③? ? ? ? ? ? alert(document.getElementById('text'));? ? ? ? ? ? b();? ? ? ? }? ? ? ? function b(){//記為④? ? ? ? ? ? alert(document.getElementById('div0'));? ? ? ? }? ? </script></head><body>? ? <p id="text">hello</p>? ? <div id="div0">world</div></body></html>JS的執(zhí)行順序是怎樣的呢?我的理解是1、先裝載函數,即①-③-④,然后執(zhí)行②2、裝載①的情況不太清楚,不過好像此時并不會加載body內容;3、裝載③時獲取不到id為text的DOM元素4、裝載④時獲取不到id為div0的DOM元素5、執(zhí)行②時,調用① window.onload=a; 即body內容加載完后調用③,如果裝載函數的時候沒有獲取到id為text的DOM元素,最后卻獲取到了,那,這是因為重新獲取了一遍嗎?也就是說裝載時獲取一遍,調用時又獲取一遍嗎?還是上邊的3我判斷有問題?6、調用③時里邊又調用了④,與5有同樣的疑問,調用的時候重新獲取了一遍嗎?有大神講解一下嗎?好像知道代碼是如何運行的
查看完整描述

2 回答

?
喝牛奶對身體好

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

我的理解是這樣的,首先解析器因為函數聲明提升,會先讀取函數聲明,確保他們在之后調用的時候可以訪問,并沒有執(zhí)行代碼,然后后面才調用了函數a(),并執(zhí)行了其中的代碼。另外按規(guī)范把腳本放在body里不就好了。

查看完整回答
反對 回復 2018-01-09
?
pardon110

TA貢獻1038條經驗 獲得超227個贊

問題本質js會從詞法分析,變量解析到執(zhí)行。簡單點講,運行時生成活動對象AO,在此之前會先分析變量的聲明,再分析函數的說明。

查看完整回答
反對 回復 2017-12-21
  • 2 回答
  • 0 關注
  • 1140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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