你了解JavaScript的js運(yùn)行三部曲嗎
1.1 語(yǔ)法分析
預(yù)編譯之前,先通篇掃描看看有沒(méi)有語(yǔ)法錯(cuò)誤
1.2 預(yù)編譯
1.2.1 函數(shù)聲明整體提升
聲明函數(shù)的時(shí)候不管你寫到哪里,都會(huì)把這個(gè)函數(shù)整體提升到最前面
1.2.2 變量 聲明提升
只是把var a;提升到前面去,輸出結(jié)果為undefined,聲明提升
document.write(a);
var a=123;
1.2.3 imply global暗示全局變量
1. 定義:即任何變量,如果變量未經(jīng)聲明就賦值,此變量就為全局對(duì)象(window)所有
eg:a=10;
----------> window.a=10;

上面的代碼:var聲明了a,從右到左賦值,先將123賦給b,再給a,導(dǎo)致的結(jié)果就是b沒(méi)有聲明,即變?yōu)槿肿兞縲indow所有,打印window.b有結(jié)果123,window.a沒(méi)結(jié)果undefined。
2. 一切聲明的全局變量,全是window(全局的域)的屬性
1.2.4 預(yù)編譯四部曲(預(yù)編譯發(fā)生在函數(shù)執(zhí)行的前一刻)
1.創(chuàng)建AO對(duì)象(Activation Object)活躍對(duì)象(作用域=執(zhí)行器上下文),全局變量是GO(global object==window)
2.找形參和變量聲明,將變量和形參名作為AO屬性名,值為undefined
3.將實(shí)參值和形參統(tǒng)一(全局變量就沒(méi)這步了)
4.在函數(shù)體里面找函數(shù)聲明,值是函數(shù)體
例1:

建立函數(shù)

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

例2:

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

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


1.3 解釋執(zhí)行
單線程,解釋一行執(zhí)行一行
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
JavaScript中的運(yùn)算符種類及其規(guī)則介紹
JavaScript中的運(yùn)算符有很多,主要分為算術(shù)運(yùn)算符,等同全同運(yùn)算符,比較運(yùn)算符,字符串運(yùn)算符,邏輯運(yùn)算符,賦值運(yùn)算符等,它們都有一個(gè)自己的運(yùn)算規(guī)則,在本文為大家介紹下2013-09-09
使用Script元素發(fā)送JSONP請(qǐng)求的方法
下面小編就為大家?guī)?lái)一篇使用Script元素發(fā)送JSONP請(qǐng)求的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
簡(jiǎn)介JavaScript中g(shù)etUTCMonth()方法的使用
這篇文章主要介紹了簡(jiǎn)介JavaScript中g(shù)etUTCMonth()方法的使用,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
selenium 與 chrome 進(jìn)行qq登錄并發(fā)郵件操作實(shí)例詳解
這篇文章主要介紹了selenium 與 chrome 進(jìn)行qq登錄并發(fā)郵件操作實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
JavaScript使用過(guò)程中需要注意的地方和一些基本語(yǔ)法
JavaScript使用過(guò)程中需要注意的地方和一些基本語(yǔ)法,需要的朋友可以參考下。2010-08-08
javascript學(xué)習(xí)筆記(五) Array 數(shù)組類型介紹
javascript學(xué)習(xí)筆記之Array 數(shù)組類型介紹,需要的朋友可以參考下2012-06-06
Web Inspector:關(guān)于在 Sublime Text 中調(diào)試Js的介紹
本篇文章小編將為大家介紹,Web Inspector:關(guān)于在 Sublime Text 中調(diào)試Js的介紹。需要的朋友可以參考一下2013-04-04

