這篇文章主要介紹“Js怎么存儲(chǔ)執(zhí)行上下文”,在日常操作中,相信很多人在Js怎么存儲(chǔ)執(zhí)行上下文問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Js怎么存儲(chǔ)執(zhí)行上下文”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)為企業(yè)提供泰山網(wǎng)站建設(shè)、泰山做網(wǎng)站、泰山網(wǎng)站設(shè)計(jì)、泰山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、泰山企業(yè)網(wǎng)站模板建站服務(wù),10多年泰山做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
1、執(zhí)行上下文存在于數(shù)據(jù)棧中。該棧保存代碼運(yùn)行是創(chuàng)建的所有上下文。
棧的特點(diǎn)是后進(jìn)先出,每創(chuàng)建一個(gè)新的上下文,就會(huì)壓入棧的頂部。當(dāng)函數(shù)執(zhí)行完成時(shí),上下文從棧中彈出,控制過(guò)程到達(dá)棧中的下一個(gè)上下文。
2、當(dāng)js引擎第一次觸摸腳本時(shí),它將創(chuàng)建一個(gè)全局的上下文,并將其壓入棧中。
實(shí)例
// 創(chuàng)建全局上下文,入上下文執(zhí)行棧 var name = 'globalName'; function F1() { // 第一階段進(jìn)行后 // 這里this指向window // name被創(chuàng)建,但是未賦值 //F2被創(chuàng)建并且引用 console.log(name); // 那么這里應(yīng)該是undefined console.log(F2); // 這里應(yīng)該是 F2 var name = 'f1ame'; // 再此之后,則name可以訪問(wèn)到 function F2(argumentName) { console.log(argumentName); } // 創(chuàng)建F2上下文,入上下文執(zhí)行棧 同理 F2(name); //F2 出棧 console.log(sex); //sex未創(chuàng)建,未賦值,且作用域鏈中也沒(méi)有,所以報(bào)錯(cuò) sex not defined } // 創(chuàng)建F1上下文,入上下文執(zhí)行棧 F1(); // F1出棧 // 全局上下文出棧
到此,關(guān)于“Js怎么存儲(chǔ)執(zhí)行上下文”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!