摘要:全局對(duì)象在程序任何地方都能訪問(wèn)到的對(duì)象,在瀏覽器中是變量指向在中是什么外部環(huán)境暫時(shí)不講。函數(shù)聲明直接提前。執(zhí)行過(guò)程,函數(shù)執(zhí)行和銷(xiāo)毀過(guò)程。變量預(yù)解析,賦值外部環(huán)境之間的關(guān)系。如果做不對(duì),繼續(xù)找,直到合格。
當(dāng)程序在瀏覽器中運(yùn)行的時(shí)候,js引擎會(huì)產(chǎn)生三個(gè)東西。
1.全局對(duì)象 在js程序任何地方都能訪問(wèn)到的對(duì)象,在瀏覽器中是window
2.this 變量指向window
在nodejs中 this是什么?
3.外部環(huán)境
暫時(shí)不講。
一圖抵萬(wàn)言
好,我知道js引擎怎么折騰你的代碼,那么我們看看執(zhí)行上下文,也就是管理正在運(yùn)行的程序的部分是如何工作的。
不廢話是時(shí)候該上代碼了。
console.log(a); var a =12; b(); function b(){ console.log(5); }
結(jié)果是啥你想對(duì)了沒(méi)?
為什么這樣?
因?yàn)橛幸粋€(gè)變量聲明提升的過(guò)程。
記住一句話,變量聲明提前,賦值原地不動(dòng)。函數(shù)聲明直接提前。
這里再來(lái)一個(gè)問(wèn)題為什么這樣?
說(shuō)這個(gè)之前先說(shuō)一個(gè)例子,
console.log(a);![js運(yùn)行原理創(chuàng)建](/Users/L/騰訊課堂/深入了解js/js運(yùn)行原理創(chuàng)建.png)![js運(yùn)行原理創(chuàng)建](/Users/L/騰訊課堂/深入了解js/js運(yùn)行原理創(chuàng)建.png) b(); functon b(){ console.log(5); }
這里要注意,undefined,是一個(gè)值,不等于不定義變量
程序執(zhí)行和人眼閱讀類(lèi)似,從上到下,從左到右,執(zhí)行過(guò)去的不會(huì)再回去執(zhí)行一遍。
執(zhí)行過(guò)程,函數(shù)執(zhí)行和銷(xiāo)毀過(guò)程。
函數(shù)就像刷盤(pán)子,你懂得,后進(jìn)先出。
變量預(yù)解析,賦值外部環(huán)境之間的關(guān)系。
為什么有預(yù)解析。
ES6作用域,let關(guān)鍵字 塊級(jí)作用域
var
let
作業(yè):尋找各大公司函數(shù)預(yù)解析題目10道題,要求做對(duì)8道。如果做不對(duì),繼續(xù)找,直到合格。
如有疑問(wèn)加入和更多資料,**
QQ群:552079864
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82528.html
摘要:模塊化可以有多種形式,但是至少應(yīng)該提供能夠?qū)⒋a分割為多個(gè)源文件的機(jī)制。規(guī)范規(guī)范的提出,主要為了彌補(bǔ)當(dāng)前沒(méi)有標(biāo)準(zhǔn)的缺陷。規(guī)范為指定了美好的愿景,希望能夠在任何地方使用。學(xué)完了得練一練吧,干起來(lái)定義引入執(zhí)行結(jié)果搞定不積跬步無(wú)以至千里 一、commonJs規(guī)范 說(shuō)到commonjs的規(guī)范,為什么會(huì)有這個(gè)東西的出現(xiàn)呢?這就不得不說(shuō)ECAMAScript的缺陷,那么有什么缺陷,如下幾點(diǎn): 1、...
摘要:大彬哥版權(quán)所有翻錄必究尼古拉斯屌大彬哥群尼古拉斯屌大彬哥函數(shù)聲明函數(shù)表達(dá)式是不是簡(jiǎn)單的讓人發(fā)指區(qū)別就一句話,函數(shù)聲明,可以在函數(shù)調(diào)用之后,因?yàn)橛泻瘮?shù)預(yù)解析。而函數(shù)表達(dá)式必須在調(diào)用之前。 通過(guò)前三課講解,大家應(yīng)該能做到 1.手里有一份隨時(shí)能夠換工作自信的簡(jiǎn)歷 2.知道了學(xué)習(xí)js的正確姿勢(shì) 3.理解了全局對(duì)象、全局上下文、知道有預(yù)解析同時(shí)做了至少50道面試題 4.能熟練的使用json構(gòu)建...
摘要:往期目錄第一課體驗(yàn)第二課基礎(chǔ)類(lèi)型和入門(mén)高級(jí)類(lèi)型第三課什么是泛型第四課解讀高級(jí)類(lèi)型第五課什么是命名空間什么時(shí)候要用命名空間如果你發(fā)現(xiàn)自己寫(xiě)的功能函數(shù)類(lèi)接口等越來(lái)越多你想對(duì)他們進(jìn)行分組管理就可以用命名空間下面先用類(lèi)舉例仔細(xì)看你會(huì)發(fā)現(xiàn)下還有在這里 往期目錄 第一課, 體驗(yàn)typescript 第二課, 基礎(chǔ)類(lèi)型和入門(mén)高級(jí)類(lèi)型 第三課, 什么是泛型? 第四課, 解讀高級(jí)類(lèi)型 第五課, 什么是命...
摘要:具體來(lái)說(shuō),新建的規(guī)則有新特性應(yīng)該基于以及。,標(biāo)簽都是用來(lái)干嘛的是提供關(guān)于的元數(shù)據(jù),不會(huì)顯示在頁(yè)面上,但是對(duì)于機(jī)器是可讀的。元數(shù)據(jù)可用來(lái)瀏覽器如何顯示內(nèi)容或重新加載頁(yè)面,用于搜索引擎關(guān)鍵字。 HTML是什么,HTML5是什么 HTML元素標(biāo)簽、屬性都是什么概念? 文檔類(lèi)型是什么概念,起什么作用? meta標(biāo)簽都用來(lái)做什么的? Web語(yǔ)義化是什么,是為了解決什么問(wèn)題 鏈接是什么概念,對(duì)應(yīng)什么標(biāo)簽...
摘要:允許在塊級(jí)作用域內(nèi)聲明函數(shù)。上面代碼中,存在全局變量,但是塊級(jí)作用域內(nèi)又聲明了一個(gè)局部變量,導(dǎo)致后者綁定這個(gè)塊級(jí)作用域,所以在聲明變量前,對(duì)賦值會(huì)報(bào)錯(cuò)。 ES5的作用域 變量起作用的范圍,js中能創(chuàng)建作用域的只能是函數(shù) { let a = 1; var b = 2; } console.log(a); // a is not defined console.log(b); //...
閱讀 1098·2021-09-22 15:19
閱讀 1715·2021-08-23 09:46
閱讀 2238·2021-08-09 13:47
閱讀 1416·2019-08-30 15:55
閱讀 1421·2019-08-30 15:55
閱讀 1981·2019-08-30 15:54
閱讀 2809·2019-08-30 15:53
閱讀 719·2019-08-30 11:03