JS是單線程執(zhí)行,有兩種可能改變執(zhí)行順序。

十余年的蒼南網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整蒼南建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“蒼南網(wǎng)站設(shè)計(jì)”,“蒼南網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
1、在頁(yè)面的某個(gè)地方加上script來(lái)修改執(zhí)行順序,比如一段JS代碼是一起執(zhí)行,要修改一部分代碼的執(zhí)行順序,那吧那段代碼單獨(dú)抽取出來(lái),放到你想要的位置。
2、使用定時(shí)器,setTimetou等等方法。
你現(xiàn)在是先定義了函數(shù)a,然后定義了函數(shù)b,然后再去執(zhí)行函數(shù)a
即使你把代碼改成這樣依舊能夠正常運(yùn)行
a();
function?a()?{
b();
}
function?b()?{
console.log(111)
}
因?yàn)镴S運(yùn)行環(huán)境會(huì)把定義的代碼(變量/函數(shù))提升到作用域的最前面
javascript代碼和其他服務(wù)器端代碼一樣,都是按順序執(zhí)行的。
但是這里有幾個(gè)代碼跳轉(zhuǎn)的地方:
1、setTimeout / setInterval
這兩個(gè)函數(shù)中的代碼是定時(shí)執(zhí)行,不在順序中;
2、ajax
Ajax一般來(lái)說(shuō),在 成功/失敗 獲取服務(wù)器端數(shù)據(jù)后會(huì)有js代碼來(lái)處理接受到的數(shù)據(jù);ajax有兩種情況,分別是同步和異步;同步是指的,js在發(fā)送ajax請(qǐng)求后阻塞代碼執(zhí)行,一直到ajax獲取到服務(wù)器返回?cái)?shù)據(jù),然后繼續(xù)按代碼順序執(zhí)行,也就是說(shuō),這種情況下,ajax后面的代碼中可以正常使用ajax返回的數(shù)據(jù);異步是指ajax請(qǐng)求發(fā)送后,代碼跳過(guò)ajax,繼續(xù)執(zhí)行其后的代碼,ajax 響應(yīng)代碼在ajax獲取數(shù)據(jù)后執(zhí)行,也就是說(shuō),這種情況下,ajax后面的代碼中不能確定ajax的狀態(tài),也不可以ajax返回的數(shù)據(jù)。
按照代碼塊的先后順序關(guān)系,先對(duì)代碼塊進(jìn)行預(yù)編譯,再執(zhí)行。代碼塊指的是script標(biāo)簽包含的js片段。具體如下:
step 1. 讀入第一個(gè)代碼塊。
step 2. 做語(yǔ)法分析,有錯(cuò)則報(bào)語(yǔ)法錯(cuò)誤(比如括號(hào)不匹配等),并跳轉(zhuǎn)到step5。
step 3. 對(duì)var變量和function定義做“預(yù)編譯處理”(永遠(yuǎn)不會(huì)報(bào)錯(cuò)的,因?yàn)橹唤馕稣_的聲明)。
step 4. 執(zhí)行代碼段,有錯(cuò)則報(bào)錯(cuò)(比如變量未定義)。
step 5. 如果還有下一個(gè)代碼段,則讀入下一個(gè)代碼段,重復(fù)step2。
step6. 結(jié)束。
分享標(biāo)題:javascript順序,js正序排序
文章出自:http://chinadenli.net/article32/dsshcpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站收錄、網(wǎng)站制作、品牌網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)