<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一個(gè)例子,變量提升和函數(shù)提升就是這么簡(jiǎn)單!

          共 995字,需瀏覽 2分鐘

           ·

          2020-12-27 13:37

          為啥要進(jìn)行變量提升和函數(shù)提升?

          引擎在讀取js代碼的過(guò)程中,分為兩步。第一個(gè)步驟是整個(gè)js代碼的解析讀取,第二個(gè)步驟是執(zhí)行。
          在JS代碼執(zhí)行之前,瀏覽器的解析器在遇到 var 變量名 和function 整個(gè)函數(shù)?提升到當(dāng)前作用域的最前面。

          記住兩句話

          1、變量提升只會(huì)提升變量名的聲明,而不會(huì)提升變量的賦值初始化。
          2、函數(shù)提升的優(yōu)先級(jí)大于變量提升的優(yōu)先級(jí),即函數(shù)提升在變量提升之上。
          記住這兩句話,就可以從容不迫的擼代碼了!
          console.log(a); var a=1;console.log(a); function a(){console.log(2);}console.log(a); var a=3;console.log(a); function a(){console.log(3);}a();console.log(a);
          你知道執(zhí)行結(jié)果嗎?
          其實(shí),實(shí)際的執(zhí)行順序?yàn)椋?/span>
          function a(){alert(3);} //第一步預(yù)解析:將 var a提升 但因?yàn)樽兞棵c函數(shù)名相同,故function a()提升時(shí)將覆蓋var a,又因?yàn)榇嬖趦蓚€(gè)相同名稱 的function函數(shù),后寫(xiě)的將覆蓋先寫(xiě)的,所以最后提升的只有function a(){alert(3);} console.log(a); //因?yàn)楹瘮?shù)提升,所以打印的a為函數(shù)整體a=1; //將1賦值給函數(shù)a,此時(shí)的a為一個(gè)變量,不再是函數(shù)console.log(a); //故打印的為a賦的值console.log(a);a=3; //將a重新賦值3console.log(a); //故打印結(jié)果為3a(); //此時(shí)的a為一個(gè)變量,不再是一個(gè)函數(shù),所以報(bào)錯(cuò),js中一旦出現(xiàn)報(bào)錯(cuò),后面的語(yǔ)句將不再運(yùn)行,所以最后一個(gè)console.log不進(jìn)行打印。console.log(a);
          結(jié)束!搞清楚這題,變量提升與函數(shù)提升你就搞懂啦!
          本文完?

          瀏覽 19
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日逼逼av | 干欧美视频| 欧美特黄一级视频 | 毛毛毛毛毛毛毛片123 | 欧美aaa在线 |