国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

深入理解JavaScript (3) —— 作用域

jerry / 1957人閱讀

摘要:針對(duì)有經(jīng)驗(yàn)的開(kāi)發(fā)者,糾正一個(gè)過(guò)時(shí)的理解你可能聽(tīng)過(guò)這句話沒(méi)有塊級(jí)作用域。詳見(jiàn)而且,在不使用新語(yǔ)法的前提下,沒(méi)有塊級(jí)作用域的正確理解應(yīng)該是只有全局作用域和函數(shù)作用域。各自的作用域下,用各自的。

針對(duì)有經(jīng)驗(yàn)的開(kāi)發(fā)者,糾正一個(gè)過(guò)時(shí)的理解:你可能聽(tīng)過(guò)這句話“javascript沒(méi)有塊級(jí)作用域”。所謂“塊”,就是大括號(hào)“{}”中間的語(yǔ)句。誠(chéng)然,在ES6之前,這句話是完全正確的,但ES中新增的兩個(gè)命令let和const,改變了這種狀態(tài),使得js也有了塊級(jí)作用域的概念。詳見(jiàn):http://www.cnblogs.com/giggle...

而且,在不使用ES6新語(yǔ)法的前提下,“javascript沒(méi)有塊級(jí)作用域”的正確理解應(yīng)該是“javascript只有全局作用域和函數(shù)作用域”。

var a = 1;

if(a) {
    var b = 2;
}

for (var c = 3; c < 10; c++) {
    //......
}

所以,上述代碼中的a、b、c皆是全局作用域中的全局變量。

作用域是一個(gè)很抽象的概念,類似于一個(gè)“地盤(pán)”:

如上圖,全局代碼和fn、bar兩個(gè)函數(shù)都會(huì)形成一個(gè)作用域。而且,作用域有上下級(jí)的關(guān)系,上下級(jí)關(guān)系的確定就看函數(shù)是在哪個(gè)作用域下創(chuàng)建的。例如,fn作用域下創(chuàng)建了bar函數(shù),那么“fn作用域”就是“bar作用域”的上級(jí)。

作用域最大的用處就是隔離變量,不同作用域下同名變量不會(huì)有沖突。例如以上代碼中,三個(gè)作用域下都聲明了“a”這個(gè)變量,但是他們不會(huì)有沖突。各自的作用域下,用各自的“a”。

與執(zhí)行上下文環(huán)境的關(guān)系:

作用域只是一個(gè)“地盤(pán)”,一個(gè)抽象的概念,代碼寫(xiě)完就已經(jīng)將其確定了,是一直存在的,其中沒(méi)有變量,要通過(guò)作用域?qū)?yīng)的執(zhí)行上下文環(huán)境來(lái)獲取變量的值。

執(zhí)行上下文環(huán)境類似于一個(gè)“對(duì)象”,代碼預(yù)處理完才會(huì)生成,存在被“創(chuàng)建”或被“銷毀”的概念,里邊存放聲明的變量。

同一個(gè)作用域下,不同的調(diào)用會(huì)產(chǎn)生不同的執(zhí)行上下文環(huán)境,繼而產(chǎn)生不同的變量的值。

如果要查找一個(gè)作用域下某個(gè)變量的值,就需要找到這個(gè)作用域?qū)?yīng)的執(zhí)行上下文環(huán)境,再在其中尋找變量的值。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/91725.html

相關(guān)文章

  • 【進(jìn)階2-2期】JavaScript深入之從作用理解閉包

    摘要:使用上一篇文章的例子來(lái)說(shuō)明下自由變量進(jìn)階期深入淺出圖解作用域鏈和閉包訪問(wèn)外部的今天是今天是其中既不是參數(shù),也不是局部變量,所以是自由變量。 (關(guān)注福利,關(guān)注本公眾號(hào)回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實(shí)戰(zhàn)、面試指導(dǎo)) 本周正式開(kāi)始前端進(jìn)階的第二期,本周的主題是作用域閉包,今天是第7天。 本計(jì)劃一共28期,每期重點(diǎn)攻克一個(gè)面試重難點(diǎn),如果你還不了解本進(jìn)階計(jì)...

    simpleapples 評(píng)論0 收藏0
  • 【進(jìn)階2-3期】JavaScript深入之閉包面試題解

    摘要:閉包面試題解由于作用域鏈機(jī)制的影響,閉包只能取得內(nèi)部函數(shù)的最后一個(gè)值,這引起的一個(gè)副作用就是如果內(nèi)部函數(shù)在一個(gè)循環(huán)中,那么變量的值始終為最后一個(gè)值。 (關(guān)注福利,關(guān)注本公眾號(hào)回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實(shí)戰(zhàn)、面試指導(dǎo)) 本周正式開(kāi)始前端進(jìn)階的第二期,本周的主題是作用域閉包,今天是第8天。 本計(jì)劃一共28期,每期重點(diǎn)攻克一個(gè)面試重難點(diǎn),如果你還不了...

    alanoddsoff 評(píng)論0 收藏0
  • 深入理解 Javascript作用

    摘要:作用域是門(mén)動(dòng)態(tài)語(yǔ)言,跟不一樣,可以隨意定義全局變量和局部變量,變量會(huì)在該作用域下提升,而且沒(méi)有塊級(jí)作用域。一預(yù)處理作用域解析的作用域只用兩種,一個(gè)是全局的,一個(gè)是函數(shù)的,也稱為全局作用域和局部作用域局部作用域可以訪問(wèn)全局作用域。 作用域 JavaScript是門(mén)動(dòng)態(tài)語(yǔ)言,跟Java不一樣,JavaScript可以隨意定義全局變量和局部變量,變量會(huì)在該作用域下提升,而且JavaScrip...

    banana_pi 評(píng)論0 收藏0
  • 深入理解JavaScript作用作用

    前言 JavaScript中有一個(gè)被稱為作用域(Scope)的特性。雖然對(duì)于許多新手開(kāi)發(fā)者來(lái)說(shuō),作用域的概念并不是很容易理解,本文我會(huì)盡我所能用最簡(jiǎn)單的方式來(lái)解釋作用域和作用域鏈,希望大家有所收獲! 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客 作用域(Scope) 1.什么是作用域 作用域是在運(yùn)行時(shí)代碼中的某些特定部分中變量,函數(shù)和對(duì)象的可訪問(wèn)性。換句話說(shuō),作用域決定了代碼區(qū)塊中變量和其他資源的可見(jiàn)...

    baiy 評(píng)論0 收藏0
  • 深入理解JavaScript作用作用

    前言 JavaScript中有一個(gè)被稱為作用域(Scope)的特性。雖然對(duì)于許多新手開(kāi)發(fā)者來(lái)說(shuō),作用域的概念并不是很容易理解,本文我會(huì)盡我所能用最簡(jiǎn)單的方式來(lái)解釋作用域和作用域鏈,希望大家有所收獲! 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客 作用域(Scope) 1.什么是作用域 作用域是在運(yùn)行時(shí)代碼中的某些特定部分中變量,函數(shù)和對(duì)象的可訪問(wèn)性。換句話說(shuō),作用域決定了代碼區(qū)塊中變量和其他資源的可見(jiàn)...

    ytwman 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<