小菜蛙成長日記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
- 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
- JavaScript深入之作用域鏈JavaScript
- JavaScript 深入之作用域鏈JavaScript
- Javascript解析之作用域理解JavaScript
- 理解JavaScript的作用域鏈JavaScript
- Javascript-this/作用域/閉包JavaScript