中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

深入理解javascript作用域第二篇之詞法作用域和動態作用域
來源:易賢網 閱讀:967 次 日期:2016-07-29 14:12:23
溫馨提示:易賢網小編為您整理了“深入理解javascript作用域第二篇之詞法作用域和動態作用域”,方便廣大網友查閱!

這篇文章主要介紹了javascript作用域第二篇之詞法作用域和動態作用域的相關資料,非常不錯,具有參考借鑒價值,感興趣的朋友可以參考下

前面的話

大多數時候,我們對作用域產生混亂的主要原因是分不清楚應該按照函數位置的嵌套順序,還是按照函數的調用順序進行變量查找。再加上this機制的干擾,使得變量查找極易出錯。這實際上是由兩種作用域工作模型導致的,作用域分為詞法作用域和動態作用域,分清這兩種作用域模型就能夠對變量查找過程有清晰的認識。本文是深入理解javascript作用域系列第二篇——詞法作用域和動態作用域

詞法作用域

第一篇介紹過,編譯器的第一個工作階段叫作分詞,就是把由字符組成的字符串分解成詞法單元。這個概念是理解詞法作用域的基礎

簡單地說,詞法作用域就是定義在詞法階段的作用域,是由寫代碼時將變量和塊作用域寫在哪里來決定的,因此當詞法分析器處理代碼時會保持作用域不變

關系

無論函數在哪里被調用,也無論它如何被調用,它的詞法作用域都只由函數被聲明時所處的位置決定

function foo(a) {

var b = a * 2;

function bar(c) {

console.log( a, b, c );

}

bar(b * 3);

}

foo( 2 ); // 2 4 12

在這個例子中有三個逐級嵌套的作用域。為了幫助理解,可以將它們想象成幾個逐級包含的氣泡

作用域氣泡由其對應的作用域塊代碼寫在哪里決定,它們是逐級包含的

氣泡1包含著整個全局作用域,其中只有一個標識符:foo

氣泡2包含著foo所創建的作用域,其中有三個標識符:a、bar和b

氣泡3包含著bar所創建的作用域,其中只有一個標識符:c

查找

作用域氣泡的結構和互相之間的位置關系給引擎提供了足夠的位置信息,引擎用這些信息來查找標識符的位置

在代碼片段中,引擎執行console.log(...)聲明,并查找a、b和c三個變量的引用。它首先從最內部的作用域,也就是bar(...)函數的作用域開始查找。引擎無法在這里找到a,因此會去上一級到所嵌套的foo(...)的作用域中繼續查找。在這里找到了a,因此引擎使用了這個引用。對b來講也一樣。而對c來說,引擎在bar(...)中找到了它

[注意]詞法作用域查找只會查找一級標識符,如果代碼引用了foo.bar.baz,詞法作用域查找只會試圖查找foo標識符,找到這個變量后,對象屬性訪問規則分別接管對bar和baz屬性的訪問

foo = {

bar:{

baz: 1

}

};

console.log(foo.bar.baz);//1

遮蔽

作用域查找從運行時所處的最內部作用域開始,逐級向外或者說向上進行,直到遇見第一個匹配的標識符為止

在多層的嵌套作用域中可以定義同名的標識符,這叫作“遮蔽效應”,內部的標識符“遮蔽”了外部的標識符

var a = 0;

function test(){

var a = 1;

console.log(a);//1

}

test();

全局變量會自動為全局對象的屬性,因此可以不直接通過全局對象的詞法名稱,而是間接地通過對全局對象屬性的引用來對其進行訪問

var a = 0;

function test(){

var a = 1;

console.log(window.a);//0

}

test();

通過這種技術可以訪問那些被同名變量所遮蔽的全局變量。但非全局的變量如果被遮蔽了,無論如何都無法被訪問到

動態作用域

javascript使用的是詞法作用域,它的最重要的特征是它的定義過程發生在代碼的書寫階段

那為什么要介紹動態作用域呢?實際上動態作用域是javascript另一個重要機制this的表親。作用域混亂多數是因為詞法作用域和this機制相混淆,傻傻分不清楚

動態作用域并不關心函數和作用域是如何聲明以及在任何處聲明的,只關心它們從何處調用。換句話說,作用域鏈是基于調用棧的,而不是代碼中的作用域嵌套

var a = 2;

function foo() {

console.log( a );

}

function bar() {

var a = 3;

foo();

}

bar();

【1】如果處于詞法作用域,也就是現在的javascript環境。變量a首先在foo()函數中查找,沒有找到。于是順著作用域鏈到全局作用域中查找,找到并賦值為2。所以控制臺輸出2

【2】如果處于動態作用域,同樣地,變量a首先在foo()中查找,沒有找到。這里會順著調用棧在調用foo()函數的地方,也就是bar()函數中查找,找到并賦值為3。所以控制臺輸出3

小結:兩種作用域的區別,簡而言之,詞法作用域是在定義時確定的,而動態作用域是在運行時確定的

以上所述是小編給大家介紹的深入理解javascript作用域第二篇之詞法作用域和動態作用域,希望對大家有所幫助

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美精品日韩一本| 国产欧美日韩视频在线观看| 亚洲影院在线| 亚洲午夜电影网| 西瓜成人精品人成网站| 久久久91精品国产| 欧美国产一区视频在线观看| 国产精品色在线| 亚洲国产欧美日韩精品| 亚洲欧美日韩在线| 欧美日韩的一区二区| 国产亚洲欧美日韩日本| 在线视频一区观看| 久久在线精品| 国产精品主播| 夜夜爽夜夜爽精品视频| 老司机凹凸av亚洲导航| 国产精品一区在线观看| 亚洲免费成人av| 蜜桃伊人久久| 国产一区激情| 欧美夜福利tv在线| 欧美日韩一区综合| 亚洲免费精彩视频| 欧美成人四级电影| 在线视频成人| 久久久久久久久久久久久久一区| 国产精品普通话对白| 亚洲一区二区三区精品在线| 欧美日本二区| 夜色激情一区二区| 欧美久色视频| 亚洲免费大片| 欧美日韩国产一区| 亚洲毛片一区| 欧美日韩国产在线观看| 日韩视频在线观看免费| 欧美精品一区在线播放| 亚洲国产精品久久久久秋霞影院| 欧美在线观看www| 国产精品影音先锋| 午夜精品福利在线观看| 国产精品美女久久| 午夜精品久久久| 国产一区二区久久久| 欧美一区二区三区在线观看| 国产精品人成在线观看免费| 中文日韩欧美| 欧美先锋影音| 欧美一区二区三区精品电影| 韩国一区二区三区美女美女秀| 久久久女女女女999久久| 亚洲国产精品热久久| 欧美激情一区二区三区高清视频| 亚洲精品国久久99热| 欧美日产一区二区三区在线观看| 日韩一区二区精品葵司在线| 欧美亚男人的天堂| 欧美在线播放一区| 一区二区亚洲精品| 欧美激情国产日韩| 亚洲欧美日韩在线观看a三区| 国产在线欧美| 欧美高清在线播放| 亚洲视频在线观看免费| 国产午夜一区二区三区| 久久躁狠狠躁夜夜爽| 亚洲人成在线观看| 国产精品狠色婷| 久久精品国产一区二区电影| 亚洲日本电影| 国产欧美一区二区三区在线看蜜臀| 久久久精品性| 中日韩美女免费视频网址在线观看 | 樱桃成人精品视频在线播放| 男女视频一区二区| 亚洲一区三区视频在线观看| 一区二区三区在线视频免费观看| 欧美日韩国产一区二区三区地区| 欧美一区二区大片| 亚洲日本中文字幕| 国产日韩欧美一区二区三区在线观看 | 国产精品稀缺呦系列在线| 午夜精彩视频在线观看不卡| 亚洲国产精品久久久久秋霞蜜臀| 国产精品视频精品| 欧美日本国产一区| 久久青草久久| 欧美专区日韩专区| 亚洲欧美在线另类| 亚洲午夜在线视频| 99国产精品国产精品久久| 在线观看亚洲一区| 国产女人18毛片水18精品| 欧美日韩国产精品专区| 免费成人毛片| 久久久亚洲精品一区二区三区| 亚洲一区二区高清| 99国产精品99久久久久久粉嫩| 激情综合五月天| 国产婷婷色一区二区三区四区| 欧美午夜久久久| 欧美另类videos死尸| 免费久久久一本精品久久区| 久久天天狠狠| 久久综合九色九九| 久久久久久亚洲综合影院红桃| 欧美在线二区| 久久亚洲色图| 欧美阿v一级看视频| 欧美成人午夜激情在线| 裸体女人亚洲精品一区| 久久久久**毛片大全| 久久深夜福利免费观看| 久久成人人人人精品欧| 欧美一二三区精品| 欧美一区二区在线免费观看| 欧美一区综合| 久久久久一本一区二区青青蜜月| 久久久7777| 噜噜噜噜噜久久久久久91| 久久久美女艺术照精彩视频福利播放| 久久精品主播| 老色鬼久久亚洲一区二区| 久久一区欧美| 欧美大香线蕉线伊人久久国产精品| 免费的成人av| 欧美精品一区二区三区一线天视频| 欧美日韩国产在线一区| 国产日产高清欧美一区二区三区| 激情综合亚洲| 99热这里只有精品8| 亚洲欧美日韩视频二区| 久久看片网站| 欧美性视频网站| 狠狠色丁香久久婷婷综合_中| 91久久综合| 欧美一级片久久久久久久| 牛牛国产精品| 国产精品久久久免费| 亚洲成色精品| 亚洲一区网站| 欧美成人免费大片| 国产免费亚洲高清| 亚洲精品永久免费| 久久精品二区三区| 欧美日韩精品中文字幕| 国产在线精品一区二区夜色| 亚洲精品乱码久久久久| 欧美淫片网站| 欧美日韩一区二区高清| 极品av少妇一区二区| 亚洲一级一区| 欧美激情第3页| 好男人免费精品视频| 亚洲一区亚洲二区| 欧美高清视频在线播放| 国产亚洲精品v| 亚洲一区二区黄色| 欧美成人免费在线视频| 国内精品久久久久影院色| 亚洲一区免费观看| 欧美成人高清视频| 伊人婷婷欧美激情| 久久成人综合视频| 国产精品免费视频xxxx| 亚洲毛片一区二区| 奶水喷射视频一区| 在线看视频不卡| 久久久久9999亚洲精品| 国产农村妇女精品一区二区| 一区二区三区四区五区在线 | 国一区二区在线观看| 一区二区三区 在线观看视| 久久在线观看视频| 国产一区视频在线看| 午夜电影亚洲| 欧美一区二区三区四区在线 | 亚洲视频碰碰| 久久精品国产久精国产爱| 欧美日韩综合网| 日韩视频免费| 欧美精品激情| 亚洲伦理一区| 欧美精品日韩www.p站| 亚洲欧洲在线一区| 欧美成人午夜免费视在线看片| 在线不卡视频| 久久综合久久综合久久综合| 一区二区在线观看av| 免费h精品视频在线播放| 在线视频观看日韩| 欧美成年人视频| 亚洲美洲欧洲综合国产一区| 欧美母乳在线| 正在播放亚洲| 国产精品久久看| 亚洲尤物视频在线| 国产日韩在线一区| 久久这里只有|