最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript執(zhí)行環(huán)境及作用域鏈實例分析

 更新時間:2018年08月01日 08:40:31   作者:筱葭  
這篇文章主要介紹了JavaScript執(zhí)行環(huán)境及作用域鏈,結(jié)合實例形式分析了JavaScript執(zhí)行環(huán)境及作用域鏈的相關(guān)概念、功能與使用技巧,需要的朋友可以參考下

本文實例講述了JavaScript執(zhí)行環(huán)境及作用域鏈。分享給大家供大家參考,具體如下:

1、執(zhí)行環(huán)境:

每個執(zhí)行環(huán)境都有一個與之關(guān)聯(lián)的變量對象,環(huán)境中定義的所有變量和函數(shù)都保存在這個對象中。

執(zhí)行環(huán)境包括全局執(zhí)行環(huán)境和函數(shù)執(zhí)行環(huán)境。

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

函數(shù)執(zhí)行環(huán)境是指函數(shù)的執(zhí)行環(huán)境,當執(zhí)行流進入一個函數(shù)時,函數(shù)的環(huán)境會被推入一個環(huán)境棧中,在函數(shù)執(zhí)行之后,棧將其環(huán)境彈出,將控制權(quán)返回到之前的執(zhí)行環(huán)境。

2、作用域鏈:

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

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

作用域鏈的前端,始終是當前執(zhí)行的代碼所在環(huán)境的變量對象,若此環(huán)境是函數(shù),則將其活動對象作為變量對象?;顒訉ο笞铋_始時只包含一個變量,即arguments對象(該對象在全局環(huán)境中是不存在的),作用域鏈的下一個對象來自包含環(huán)境,再下一個變量則來自下一個包含環(huán)境,這樣一直延續(xù)到全局執(zhí)行環(huán)境。全局執(zhí)行環(huán)境的變量對象始終是作用域鏈的最后一個對象。

每個環(huán)境都可以向上搜索作用域鏈,以查詢變量和函數(shù)名,終點就是搜索到全局執(zhí)行環(huán)境,但是任何環(huán)境不能通過向下搜索作用域鏈而進入另一個執(zhí)行環(huán)境。內(nèi)部環(huán)境可以通過作用域鏈訪問所有的外部環(huán)境,但外部環(huán)境不能訪問內(nèi)部環(huán)境的任何變量和函數(shù)。

3、延長作用域鏈:

雖然執(zhí)行環(huán)境只有兩種:全局執(zhí)行環(huán)境和函數(shù)執(zhí)行環(huán)境,但是可以有方法延長作用域鏈,因為有些語句可以在作用域鏈的前端臨時增加一個變量對象,該變量對象會在代碼執(zhí)行后被移除。

當執(zhí)行流進入下列語句時,作用域鏈會延長:

(1)try-catch語句的catch塊:catch語句會創(chuàng)建一個新的變量對象,其中包含的是被拋出的錯誤對象的聲明,該變量對象只在catch塊內(nèi)部有效,在catch塊外部無法訪問到。

(2)with語句:with語句會將指定的對象添加到作用域鏈中。

eg1:

function setUrl(){
  var parameter="?name=Alice";
  var url = href + parameter;
  return url;
}
var result = setUrl();
alert(result);//報錯:href is no defined

eg2:

function setUrl(){
  var parameter="?name=Alice";
 with(location) {
 var url = href + parameter;
 }
  return url;
}
var result = setUrl();
alert(result);//http://localhost/text.html?name=Alice

with語句接收的是location對象,因此其變量對象中包含了location對象的所有屬性和方法,location對象被添加到了作用域鏈的前端。

eg3:

var obj = {href : "http://www.baidu.com"};
var ;
function setUrl(){
  var parameter="?name=Alice";
 with(obj) {
 ;
 var url = href + parameter;
 }
  return url;
}
var result = setUrl();
alert(result);//http://www.google.cn?name=Alice
alert(href);//http://www.sina.cn

with語句中并沒有更改變量href的值,而是更改了obj對象的 href 屬性。

也就是說,with中首先查找的是相關(guān)對象的屬性,如果沒有,才改變變量的值。

eg4:

var obj = {};
var ;
function setUrl(){
  var parameter="?name=Alice";
 with(obj) {
 ;
 var url = href + parameter;
 }
  return url;
}
var result = setUrl();
alert(result);//http://www.google.cn?name=Alice
alert(href);//http://www.google.cn

去掉obj對象的 href 屬性后,才更改變量href的值。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript常用函數(shù)技巧匯總》、《javascript面向?qū)ο笕腴T教程》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》及《JavaScript錯誤與調(diào)試技巧總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

  • JavaScript 仿關(guān)機效果的圖片層

    JavaScript 仿關(guān)機效果的圖片層

    最近發(fā)現(xiàn)了一用 YUI 做的 Lightbox, 只需少量的設(shè)置就能類Window關(guān)機的效果來顯示圖片。
    2008-12-12
  • js識別不同瀏覽器基于userAgent做判斷

    js識別不同瀏覽器基于userAgent做判斷

    本節(jié)主要介紹了js識別不同瀏覽器依據(jù)是userAgent,需要的朋友可以參考下
    2014-07-07
  • webpack 最佳配置指北(推薦)

    webpack 最佳配置指北(推薦)

    這篇文章主要介紹了webpack 最佳配置指北的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-01-01
  • js多功能分頁組件layPage使用方法詳解

    js多功能分頁組件layPage使用方法詳解

    這篇文章主要介紹了js多功能分頁組件layPage的適用方法,layPage是一款多功能的js分頁組件,即適用于異步分頁,又可用于傳統(tǒng)的整頁刷新跳頁,功能多樣,想要了解的朋友可以參考下文進行學(xué)習(xí)
    2016-05-05
  • JS實現(xiàn)圖片放大鏡插件詳解

    JS實現(xiàn)圖片放大鏡插件詳解

    這篇文章主要為大家詳細介紹了JS實現(xiàn)圖片放大鏡插件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • js用于樹型結(jié)構(gòu)級聯(lián)選擇

    js用于樹型結(jié)構(gòu)級聯(lián)選擇

    js用于樹型結(jié)構(gòu)級聯(lián)選擇...
    2007-01-01
  • ES6小技巧之代替lodash

    ES6小技巧之代替lodash

    這篇文章主要給大家介紹了關(guān)于ES6小技巧之代替lodash的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用ES6具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Google Map Api和GOOGLE Search Api整合實現(xiàn)代碼

    Google Map Api和GOOGLE Search Api整合實現(xiàn)代碼

    將GOOGLE MAP API 和 GOOGLE Search API 進行整合,我用面向?qū)ο蟮姆绞綄懥艘粋€類,通過傳一個經(jīng)緯度進去,自動通過GOOGLE LOCAL SEARCH獲取附近的相關(guān)信息。比如餐廳、景點等,反過來標到地圖上,并可在任意容器內(nèi)顯示。
    2009-07-07
  • JavaScript彈出新窗口并控制窗口移動到指定位置的方法

    JavaScript彈出新窗口并控制窗口移動到指定位置的方法

    這篇文章主要介紹了JavaScript彈出新窗口并控制窗口移動到指定位置的方法,涉及javascript針對彈出窗口的操作技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • 細數(shù)localStorage的用法及使用注意事項

    細數(shù)localStorage的用法及使用注意事項

    這篇文章主要介紹了細數(shù)localStorage的用法及使用注意事項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評論

繁峙县| 修水县| 芜湖市| 东乡族自治县| 吴忠市| 宁波市| 玉环县| 宾阳县| 诸暨市| 威信县| 孝义市| 高尔夫| 关岭| 广饶县| 安康市| 无为县| 保德县| 江达县| 平凉市| 湘潭市| 高雄县| 芷江| 鹤岗市| 宝丰县| 岢岚县| 上思县| 德江县| 鹤山市| 常德市| 盐源县| 图木舒克市| 涟源市| 南平市| 平乡县| 蕲春县| 阿拉尔市| 石棉县| 彰化县| 诸暨市| 水富县| 玉田县|