中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript基礎進階_深入剖析執行環境及作用域鏈

發布時間:2020-09-29 00:42:10 來源:腳本之家 閱讀:151 作者:偏執于肉夾饃和煎餅果子 欄目:web開發

執行環境

執行環境定義了變量或函數有權訪問的其他函數,決定了他們各自的行為。每個執行環境都有一個與之關聯的變量對象。

變量對象

環境中定義的所有變量和函數都保存在這個對象中。

全局執行環境

全局執行環境是最外圍的一個執行環境。在web瀏覽器中,全局執行環境被認為是Window對象,因此所有全局變量和函數都是作為window對象的屬性和方法創建的。

每個函數都有自己的執行環境。

作用域鏈

當代碼在一個環境中執行,會創建變量對象的一個作用域鏈。

用途:保證對執行環境有權訪問的所有變量和函數有序訪問。

特點:作用域鏈的前端始終是當前執行的代碼所在的環境的變量對象。如果這個環境是函數,則將其活動對象作為變量對象。活動對象最開始只包含arguments對象。作用域的下一個變量對象來自包含環境,而再下個來自下一個包含環境。

var color ="blue";
function changeColor() {
 
 var anotherColor ="red";
 
 function swapColors() {
  var tempColor = anotherColor;
  anotherColor = color;
  color = tempColor;
 }

 swapColors();
}

changeColor();

如圖表示執行環境,內部環境可以通過作用域鏈訪問外部環境,但是外部環境不能訪問內部環境中的變量和函數。每個環境都可以向上搜索作用域鏈,以查詢變量和函數;但是不能向下搜索。

javascript基礎進階_深入剖析執行環境及作用域鏈

沒有塊級作用域 聲明變量

使用var聲明的變量會自動添加到最接近的環境中。如果省略var關鍵字,即會添加到全局環境中。

function add(num1,num2) {

 var sum = num1+num2;

 return sum;

}

var result= add(10,10)

console.log(sum)


javascript基礎進階_深入剖析執行環境及作用域鏈

sum is not defined

function add(num1,num2) {

 sum = num1+num2;

 return sum;

}

var result= add(10,10)

console.log(sum)


javascript基礎進階_深入剖析執行環境及作用域鏈

查詢標識符

搜索過程從作用域鏈的前端開始,向上逐級查詢與給定名字匹配的標識符,找到即終止搜索。即如果局部環境中存在著同名標識符,就不會使用位于父環境中的標志符。

var color ="red";

function getColor() {



 return color;

}



console.log(getColor())


javascript基礎進階_深入剖析執行環境及作用域鏈

var color ="red";

function getColor() {

 var color="green";

 return color;

}



console.log(getColor())


javascript基礎進階_深入剖析執行環境及作用域鏈

參考:《javascript高級程序設計(第三版)》

以上這篇javascript基礎進階_深入剖析執行環境及作用域鏈就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

綦江县| 磐安县| 都兰县| 常熟市| 临海市| 涞源县| 重庆市| 磐安县| 双江| 四会市| 北安市| 茂名市| 宁晋县| 滨州市| 黔江区| 叙永县| 敦煌市| 卓资县| 乌兰察布市| 中江县| 南宫市| 普洱| 大关县| 齐河县| 阳信县| 湖北省| 新兴县| 遂平县| 安图县| 罗城| 江孜县| 临沭县| 长岭县| 高雄市| 武威市| 治县。| 紫云| 英山县| 陇南市| 广昌县| 正宁县|