javascript代碼執(zhí)行順序

javascript代碼執(zhí)行順序

ID:15404899

大?。?3.00 KB

頁(yè)數(shù):10頁(yè)

時(shí)間:2018-08-03

javascript代碼執(zhí)行順序_第1頁(yè)
javascript代碼執(zhí)行順序_第2頁(yè)
javascript代碼執(zhí)行順序_第3頁(yè)
javascript代碼執(zhí)行順序_第4頁(yè)
javascript代碼執(zhí)行順序_第5頁(yè)
資源描述:

《javascript代碼執(zhí)行順序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、JavaScript執(zhí)行順序上一節(jié)是從JavaScript引擎的解析機(jī)制來(lái)探索JavaScript的工作原理,下面我們以更形象的示例來(lái)說(shuō)明JavaScript代碼在頁(yè)面中的執(zhí)行順序。如果說(shuō),JavaScript引擎的工作機(jī)制比較深?yuàn)W是因?yàn)樗鼘儆诘讓有袨椋敲碕avaScript代碼執(zhí)行順序就比較形象了,因?yàn)槲覀兛梢灾庇^感覺(jué)到這種執(zhí)行順序,當(dāng)然JavaScript代碼的執(zhí)行順序是比較復(fù)雜的,所以在深入JavaScript語(yǔ)言之前也有必要對(duì)其進(jìn)行剖析。1.1按HTML文檔流順序執(zhí)行JavaScript代碼首先,讀者應(yīng)該清楚,HTML文檔在瀏

2、覽器中的解析過(guò)程是這樣的:瀏覽器是按著文檔流從上到下逐步解析頁(yè)面結(jié)構(gòu)和信息的。JavaScript代碼作為嵌入的腳本應(yīng)該也算做HTML文檔的組成部分,所以JavaScript代碼在裝載時(shí)的執(zhí)行順序也是根據(jù)腳本標(biāo)簽如果通過(guò)腳本標(biāo)簽<

4、head>1.2預(yù)編譯與執(zhí)行順序的關(guān)系在Javascript中,function才是Javascript的第一型。當(dāng)我們寫(xiě)下一段函數(shù)時(shí),其實(shí)不過(guò)是建立了一個(gè)function類(lèi)型的實(shí)體。就像我們可以寫(xiě)成這樣的形式一樣:functionHello(){alert("Hello")

5、;}Hello();varHello=function(){alert("Hello");}Hello();其實(shí)都是一樣的。但是當(dāng)我們對(duì)其中的函數(shù)進(jìn)行修改時(shí),會(huì)發(fā)現(xiàn)很奇怪的問(wèn)題。functionHello(){alert("Hello");}Hello();functionHello(){alert("HelloWorld");}Hello();我們會(huì)看到這樣的結(jié)果:連續(xù)輸出了兩次HelloWorld。而非我們想象中的Hello和HelloWorld。這是因?yàn)?/p>

6、Javascript并非完全的按順序解釋執(zhí)行,而是在解釋之前會(huì)對(duì)Javascript進(jìn)行一次“預(yù)編譯”,在預(yù)編譯的過(guò)程中,會(huì)把定義式的函數(shù)優(yōu)先執(zhí)行,也會(huì)把所有var變量創(chuàng)建,默認(rèn)值為undefined,以提高程序的執(zhí)行效率。也就是說(shuō)上面的一段代碼其實(shí)被JS引擎預(yù)編譯為這樣的形式:varHello=function(){alert("Hello");}Hello=function(){alert("HelloWorld");}Hello();Hello();我們

7、可以通過(guò)上面的代碼很清晰地看到,其實(shí)函數(shù)也是數(shù)據(jù),也是變量,我們也可以對(duì)“函數(shù)“進(jìn)行賦值(重賦值)。當(dāng)然,我們?yōu)榱朔乐惯@樣的情況,也可以這樣:functionHello(){alert("Hello");}Hello();functionHello(){alert("HelloWorld");}Hello();這樣,程序被分成了兩段,JS引擎也就不會(huì)把他們放到一起了。當(dāng)JavaScr

8、ipt引擎解析腳本時(shí),它會(huì)在預(yù)編譯期對(duì)所有聲明的變量和函數(shù)進(jìn)行處理。做如下處理:1.在執(zhí)行前會(huì)進(jìn)行類(lèi)似“預(yù)編譯”的操作:首先會(huì)創(chuàng)建一個(gè)當(dāng)前執(zhí)行環(huán)境下的活動(dòng)對(duì)象,并將那些用var申明的變量設(shè)置為活動(dòng)對(duì)象的屬性

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。