您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關JavaScript運行的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
預編譯之前,先通篇掃描看看有沒有語法錯誤
聲明函數的時候不管你寫到哪里,都會把這個函數整體提升到最前面
只是把var a;提升到前面去,輸出結果為undefined,聲明提升
document.write(a);
var a=123;
1. 定義:即任何變量,如果變量未經聲明就賦值,此變量就為全局對象(window)所有
eg:a=10;
----------> window.a=10;
上面的代碼:var聲明了a,從右到左賦值,先將123賦給b,再給a,導致的結果就是b沒有聲明,即變為全局變量window所有,打印window.b有結果123,window.a沒結果undefined。
2. 一切聲明的全局變量,全是window(全局的域)的屬性
1.創建AO對象(Activation Object)活躍對象(作用域=執行器上下文),全局變量是GO(global object==window)
2.找形參和變量聲明,將變量和形參名作為AO屬性名,值為undefined
3.將實參值和形參統一(全局變量就沒這步了)
4.在函數體里面找函數聲明,值是函數體
例1:
建立函數
預編譯看過的地方,執行函數的時候就不用在看了,下面是函數執行結果
例2:
函數執行完后打印出 1,2,2
例3:
最后函數執行完了才把a變成10
例4:
單線程,解釋一行執行一行
感謝各位的閱讀!關于“JavaScript運行的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。