體驗jaivascript之美第二課 全局對象、外部環境、聲明提高

當程序在瀏覽器中運行的時候,js引擎會產生三個東西。node

clipboard.png
1.全局對象 在js程序任何地方都能訪問到的對象,在瀏覽器中是window瀏覽器

2.this 變量指向window函數

在nodejs中 this是什麼?

3.外部環境this

暫時不講。

一圖抵萬言spa

好,我知道js引擎怎麼折騰你的代碼,那麼咱們看看執行上下文,也就是管理正在運行的程序的部分是如何工做的。code

不廢話是時候該上代碼了。對象

console.log(a);
var a =12;
b();
function b(){
  console.log(5);
}

結果是啥你想對了沒?blog

爲何這樣?ip

由於有一個變量聲明提高的過程。作用域

記住一句話,變量聲明提早,賦值原地不動。函數聲明直接提早。

這裏再來一個問題爲何這樣?

說這個以前先說一個例子,

console.log(a);![js運行原理建立](/Users/L/騰訊課堂/深刻了解js/js運行原理建立.png)![js運行原理建立](/Users/L/騰訊課堂/深刻了解js/js運行原理建立.png)
b();
functon b(){
  console.log(5);
}

這裏要注意,undefined,是一個值,不等於不定義變量

程序執行和人眼閱讀相似,從上到下,從左到右,執行過去的不會再回去執行一遍。

執行過程,函數執行和銷燬過程。

函數就像刷盤子,你懂得,後進先出。

變量預解析,賦值外部環境之間的關係。

爲何有預解析。

ES6做用域,let關鍵字 塊級做用域

var

let

做業:尋找各大公司函數預解析題目10道題,要求作對8道。若是作不對,繼續找,直到合格。

若有疑問加入和更多資料,**

QQ羣:552079864

相關文章
相關標籤/搜索