小菜蛙成長日記2018001(JavaScript作用域)
今天去參加面試,本來對自己的web前端能力算是比較自信,然後筆試時先做了智力題,算是相當容易了,八成都對,就是面試時,面試官問我的問題可以說是讓我非常萌幣了。本來學習的時候也就是一帶而過,看完就忘記,也就是知道個大概,面試官問我的時候,我就完全回答不上來了。沒啥可說的,除了自己基礎不紮實,真的沒什麼好辯駁的。今天把面試官的問題好好的捋一捋,朝花夕拾。
1.對javascript的作用域的理解。·
執行環境(execution context)是JS的一個重要概念,定義了變數或者函式有權訪問的其他資料,決定了它們各自的行為。每個執行環境都有一個與之關聯的變數物件(varicable object)。
全域性執行環境是最外圍的執行環境。某個執行環境中所有程式碼執行完畢後,該環境隨之被銷燬,儲存於其中的變數和函式的定義也被銷燬。
function setName(obj){
obj.name="Nicholas";
obj=new Object();
obj.name="Grey";
}
var person=new Object();
setName(person);
alert(person.name);
以上程式碼輸出的的就是"Nicholas",方法中被定義的的obj在方法執行完畢之後即被銷燬,但是原始的引用仍然保持未變。
當程式碼在一個環境中執行時,會建立變數物件的一個作用域鏈(scope chain),其用途是為了保證執行環境有權訪問的所有變數和函式有序訪問。
var color ="blue";
function changeColor(){
if(color === "blue"){
color="red";
}else{
color="blue";
}
}
changeColor();
alert("Color is now " + color);
以上程式碼輸出的應該是 "Color is now red".相關文章
- JavaScript 作用域 與 作用域鏈JavaScript
- javaScript 作用域JavaScript
- JavaScript作用域JavaScript
- 晝貓筆記 JavaScript — 作用域技巧!!筆記JavaScript
- javascript之作用域與作用域鏈JavaScript
- 深入理解JavaScript作用域和作用域鏈JavaScript
- JavaScript之作用域鏈JavaScript
- 學習JavaScript作用域JavaScript
- JavaScript 塊級作用域JavaScript
- JavaScript深度理解——作用域JavaScript
- javascript 詞法作用域JavaScript
- 淺談JavaScript作用域JavaScript
- 圖解javascript作用域圖解JavaScript
- 你不知道的Javascript(上卷)-作用域筆記JavaScript筆記
- javascript:變數、作用域和記憶體問題JavaScript變數記憶體
- 深入理解javascript系列(六):作用域與作用域鏈JavaScript
- 11-09 成長日記
- 理解 JavaScript 中的作用域JavaScript
- 深入理解JavaScript作用域JavaScript
- 徹底搞懂JavaScript作用域JavaScript
- 談談 JavaScript 的作用域JavaScript
- Javascript-this/作用域/閉包JavaScript
- JavaScript高階特性 — 作用域JavaScript
- JavaScript之作用域和閉包JavaScript
- 深入理解 Javascript 之 作用域JavaScript
- (譯)理解javascript中的作用域JavaScript
- JavaScript之變數及作用域JavaScript變數
- JavaScript中變數和作用域JavaScript變數
- 淺淺淺談JavaScript作用域JavaScript
- JavaScript 變數的作用域鏈JavaScript變數
- FE.ES-理解ECMA Javascript作用域JavaScript
- javascript 基礎(作用域和閉包)JavaScript
- JavaScript作用域相關的總結JavaScript
- JavaScript執行環境及作用域JavaScript
- JavaScript塊級作用域宣告函式JavaScript函式
- 現代 JavaScript 的變數作用域JavaScript變數
- 淺談Javascript中的作用域鏈JavaScript
- Javascript深入之作用域與閉包JavaScript