欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript基礎(chǔ)進(jìn)階_深入剖析執(zhí)行環(huán)境及作用域鏈

 更新時間:2017年09月05日 08:46:23   作者:偏執(zhí)于肉夾饃和煎餅果子  
下面小編就為大家?guī)硪黄猨avascript基礎(chǔ)進(jìn)階_深入剖析執(zhí)行環(huán)境及作用域鏈。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

執(zhí)行環(huán)境

執(zhí)行環(huán)境定義了變量或函數(shù)有權(quán)訪問的其他函數(shù),決定了他們各自的行為。每個執(zhí)行環(huán)境都有一個與之關(guān)聯(lián)的變量對象。

變量對象

環(huán)境中定義的所有變量和函數(shù)都保存在這個對象中。

全局執(zhí)行環(huán)境

全局執(zhí)行環(huán)境是最外圍的一個執(zhí)行環(huán)境。在web瀏覽器中,全局執(zhí)行環(huán)境被認(rèn)為是Window對象,因此所有全局變量和函數(shù)都是作為window對象的屬性和方法創(chuàng)建的。

每個函數(shù)都有自己的執(zhí)行環(huán)境。

作用域鏈

當(dāng)代碼在一個環(huán)境中執(zhí)行,會創(chuàng)建變量對象的一個作用域鏈。

用途:保證對執(zhí)行環(huán)境有權(quán)訪問的所有變量和函數(shù)有序訪問。

特點:作用域鏈的前端始終是當(dāng)前執(zhí)行的代碼所在的環(huán)境的變量對象。如果這個環(huán)境是函數(shù),則將其活動對象作為變量對象?;顒訉ο笞铋_始只包含arguments對象。作用域的下一個變量對象來自包含環(huán)境,而再下個來自下一個包含環(huán)境。

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

 swapColors();
}

changeColor();

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

沒有塊級作用域 聲明變量

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

function add(num1,num2) {

 var sum = num1+num2;

 return sum;

}

var result= add(10,10)

console.log(sum)


sum is not defined

function add(num1,num2) {

 sum = num1+num2;

 return sum;

}

var result= add(10,10)

console.log(sum)


查詢標(biāo)識符

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

var color ="red";

function getColor() {



 return color;

}



console.log(getColor())


var color ="red";

function getColor() {

 var color="green";

 return color;

}



console.log(getColor())


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

以上這篇javascript基礎(chǔ)進(jìn)階_深入剖析執(zhí)行環(huán)境及作用域鏈就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 原生js自定義右鍵菜單

    原生js自定義右鍵菜單

    這篇文章主要為大家詳細(xì)介紹了原生js自定義右鍵菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • javascript刪除Table中的一行的腳本代碼

    javascript刪除Table中的一行的腳本代碼

    用js實現(xiàn)的刪除table中一行數(shù)據(jù)的代碼
    2008-06-06
  • JavaScript實現(xiàn)修改偽類樣式

    JavaScript實現(xiàn)修改偽類樣式

    這篇文章主要介紹了JavaScript實現(xiàn)修改偽類樣式的方法以及代碼實現(xiàn)過程,一起學(xué)習(xí)參考下吧。
    2017-11-11
  • 基于JavaScript實現(xiàn)隨機顏色輸入框

    基于JavaScript實現(xiàn)隨機顏色輸入框

    這篇文章主要介紹了基于JavaScript實現(xiàn)隨機顏色輸入框的實例代碼,代碼簡單易懂,非常不錯,需要的朋友參考下吧
    2016-12-12
  • js刪除數(shù)組中指定元素的幾種方式

    js刪除數(shù)組中指定元素的幾種方式

    js數(shù)組是js部分非常重要的知識,有時我們有這么個需求js數(shù)組刪除指定元素,下面這篇文章主要給大家介紹了關(guān)于js刪除數(shù)組中指定元素的幾種方式,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • JavaScript實現(xiàn)HTML導(dǎo)航欄下拉菜單

    JavaScript實現(xiàn)HTML導(dǎo)航欄下拉菜單

    這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)HTML導(dǎo)航欄下拉菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 一篇文章教你寫出干凈的JavaScript代碼

    一篇文章教你寫出干凈的JavaScript代碼

    JavaScript一種直譯式腳本語言,是一種動態(tài)類型、弱類型、基于原型的語言,內(nèi)置支持類型,下面這篇文章主要給大家介紹了如何通過一篇文章教你寫出干凈的JavaScript代碼,需要的朋友可以參考下
    2021-09-09
  • js 取時間差去掉周六周日實現(xiàn)代碼

    js 取時間差去掉周六周日實現(xiàn)代碼

    js 求時間差在生活中經(jīng)常會觸及到,本文整理了一些,希望可以幫助有需求的朋友可以,而起還可以實現(xiàn)去掉周六周日這些東東,廢話不多說,進(jìn)入正題
    2012-12-12
  • js實現(xiàn)方塊上下左右移動效果

    js實現(xiàn)方塊上下左右移動效果

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)方塊上下左右移動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • JavaScript實現(xiàn)圖形驗證碼完整代碼

    JavaScript實現(xiàn)圖形驗證碼完整代碼

    很多小伙伴都在學(xué)習(xí)JavaScript,可能也會有老師提出這樣一個問題,如何用js編寫一個簡單的驗證碼,這里就和大家分享一下,這篇文章主要給大家介紹了關(guān)于JavaScript實現(xiàn)圖形驗證碼的相關(guān)資料,需要的朋友可以參考下
    2024-01-01

最新評論