91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

临邑县| 辽宁省| 乾安县| 开阳县| 临潭县| 专栏| 临武县| 广丰县| 七台河市| 绵阳市| 扎赉特旗| 施秉县| 兰溪市| 腾冲县| 新乡市| 隆安县| 家居| 新郑市| 衡山县| 佛坪县| 卓资县| 奉化市| 桦甸市| 邹城市| 普洱| 通州区| 宜兰市| 蓝田县| 资阳市| 靖边县| 武陟县| 阿拉善右旗| 盐山县| 白水县| 长泰县| 扶余县| 西丰县| 武冈市| 大荔县| 江西省| 昭平县|