溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript運(yùn)行的示例分析

發(fā)布時間:2022-02-09 11:29:31 來源:億速云 閱讀:136 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)JavaScript運(yùn)行的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

    1.1 語法分析

    預(yù)編譯之前,先通篇掃描看看有沒有語法錯誤

    1.2 預(yù)編譯 

    1.2.1 函數(shù)聲明整體提升

    聲明函數(shù)的時候不管你寫到哪里,都會把這個函數(shù)整體提升到最前面

    1.2.2 變量 聲明提升

    只是把var a;提升到前面去,輸出結(jié)果為undefined,聲明提升

    document.write(a);

    var a=123;

    1.2.3 imply global暗示全局變量

    1. 定義:即任何變量,如果變量未經(jīng)聲明就賦值,此變量就為全局對象(window)所有

    eg:a=10;

    ----------> window.a=10;

    JavaScript運(yùn)行的示例分析

     上面的代碼:var聲明了a,從右到左賦值,先將123賦給b,再給a,導(dǎo)致的結(jié)果就是b沒有聲明,即變?yōu)槿肿兞縲indow所有,打印window.b有結(jié)果123,window.a沒結(jié)果undefined。

    2. 一切聲明的全局變量,全是window(全局的域)的屬性

    1.2.4 預(yù)編譯四部曲(預(yù)編譯發(fā)生在函數(shù)執(zhí)行的前一刻)

    1.創(chuàng)建AO對象(Activation Object)活躍對象(作用域=執(zhí)行器上下文),全局變量是GO(global object==window)

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

    3.將實(shí)參值和形參統(tǒng)一(全局變量就沒這步了)

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

    例1:

    JavaScript運(yùn)行的示例分析

    建立函數(shù)

    JavaScript運(yùn)行的示例分析

    預(yù)編譯看過的地方,執(zhí)行函數(shù)的時候就不用在看了,下面是函數(shù)執(zhí)行結(jié)果

    JavaScript運(yùn)行的示例分析

    例2:

    JavaScript運(yùn)行的示例分析

     函數(shù)執(zhí)行完后打印出  1,2,2

     例3:

    JavaScript運(yùn)行的示例分析

    最后函數(shù)執(zhí)行完了才把a(bǔ)變成10

    例4:

    JavaScript運(yùn)行的示例分析

    JavaScript運(yùn)行的示例分析

    1.3 解釋執(zhí)行

    單線程,解釋一行執(zhí)行一行

    感謝各位的閱讀!關(guān)于“JavaScript運(yùn)行的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI