JavaScript的預(yù)編譯學(xué)習(xí)

預(yù)編譯

一、js運(yùn)行三部曲
                          1. 語法分析   2. 預(yù)編譯  3. 解釋執(zhí)行
二、預(yù)編譯前奏
     1.imply global 暗示全局變量:即任何變量,如果變量未經(jīng)聲明就賦值,此變量就為全局對象所有。
     如 a = 10 , 則 window.a = 10;
     如function test() {
           var a  = b = 123;
       }
       test();
       先將123賦給b,然后聲明a,然后將b賦給a;
       console.log(b)   -->   123;
       console.log(a)   -->   undefined
     2.一切聲明的全局變量,全是window的屬性, 如
        var a = 123,則window.a = 10;
        console.log(a)  -->  console.log(window.a)
     window就是全局的域 
三、預(yù)編譯
          預(yù)編譯發(fā)生在函數(shù)執(zhí)行的前一刻


                 局部(AO)

    1.創(chuàng)建AO對象  (Activation Object)(執(zhí)行期上下文)

    2.找形參和變量聲明,將變量和形參名作為AO屬性名,值為undefined

    3.將實(shí)參值和形參統(tǒng)一

    4.在函數(shù)體里面找函數(shù)聲明,值賦予函數(shù)體



                 全局(GO)            window === GO

    1.生成了一個GO對象  Global Object

    2.找變量聲明,將變量作為GO屬性名,值為undefined

    4.在函數(shù)體里面找函數(shù)聲明,值賦予函數(shù)體
例一:(局部)
<script type="text/javascript">
        function fn(a) {
            console.log(a);    //f a() {}

            var a = 123;

            console.log(a);    //123

            function a() {}

            console.log(a);    //123

            var b = function () {}

            console.log(b);    //f () {}

            function d() {}
        }
        fn(1);
</script>
1.創(chuàng)建AO對象
2.  AO{
        a: undefined,
        b: undefined,
    }
3.  AO{
        a: 1,
        b: undefined,
     }
4.  AO{
        a: function a() {},
        b: undefined,
        d: function d() {}
     }
 執(zhí)行函數(shù)對a賦值
 AO{
        a: 123,
        b: undefined,
        d: function d() {}
    }
 執(zhí)行函數(shù)對b賦值
  AO{
        a: 123,
        b: function () {},
        d: function d() {}
    }
例二:(全局)
<script type="text/javascript">     
       console.log(a);   //f a() {}
       var a = 123;
       function a() {}
       console.log(a);  //123
</script>
1.創(chuàng)建GO對象      
2. GO{
        a:undefined;
    }
4. GO{
        a:function () {}   
    }
執(zhí)行函數(shù)對a賦值
   GO{
        a:123
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • JSON概覽 JSON(JavaScript Object Notation)是一種基于文本的數(shù)據(jù)交換格式。無論你...
    技匠閱讀 15,775評論 16 261
  • 不愛學(xué)習(xí)的我最近竟然也萌生學(xué)習(xí)的心。 知識付費(fèi)大爆炸的年代, 書中自有黃金屋成了現(xiàn)實(shí), 比如老奇葩們的《好好說話》...
    我是小J閱讀 819評論 0 0
  • 非洲有諺語:想要走得快,就單獨(dú)上路;想要走得遠(yuǎn),就結(jié)伴同行。社會文明的進(jìn)步,讓抱團(tuán)學(xué)習(xí)變得更為輕松,在參加完了第一...
    枝啊枝啊閱讀 346評論 0 3
  • “也許你不會懂,從你說愛我以后,我的天空星星都亮了。我愿變成童話里你愛的那個天使......” 徐良的聲音緩緩地從...
    女漢子QJ閱讀 580評論 2 1
  • 昨晚翻朋友圈,看到一條讓我異常激動的消息——瑤瑤領(lǐng)證了!配圖是她身披潔白婚紗,與良人微笑對視。畫面唯美,溫馨,甜蜜...
    伊石榴閱讀 382評論 0 0

友情鏈接更多精彩內(nèi)容