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

資訊專欄INFORMATION COLUMN

Javascript中的作用域

AlphaWatch / 2995人閱讀

摘要:作用域的概念所謂作用域,作用就是指讀,寫等操作,而域便是指空間,范圍等中的域有是全局的域,相應(yīng)地里面的變量就是全局變量,函數(shù)就是全局函數(shù)如果有多個(gè)包住的域的話,函數(shù)會自上而下執(zhí)行,比如寫了兩的時(shí)候便會從上到下先執(zhí)行第一個(gè)再執(zhí)行第二個(gè)的代碼比

作用 域的概念

所謂作用域,作用就是指讀,寫等操作,而域便是指空間,范圍等

js中的域有
1.script
script是全局的域,相應(yīng)地里面的變量就是全局變量,函數(shù)就是全局函數(shù),如果有多個(gè)script包住的域的話,
函數(shù)會自上而下執(zhí)行,比如寫了兩的時(shí)候便會從上到下先執(zhí)行第一個(gè)script再執(zhí)行第二個(gè)
script的代碼

比如下面這個(gè)例子




//會報(bào)undefined的錯(cuò),在每一個(gè)域中都會完成兩步操作,預(yù)解析和逐行解讀代碼,在第一個(gè)域中,預(yù)解析完了之
//后倉庫(比喻,后文會提到)里并沒有a這個(gè)變量,所以執(zhí)行alert的時(shí)候會報(bào)錯(cuò)





// 可以正常工作,因?yàn)樵诘谝粋€(gè)預(yù)解析的過程中,變量a已經(jīng)被存入了倉庫中,在第二個(gè)script域里面并不會清空
//之前倉庫里的變量
2.函數(shù)
函數(shù)內(nèi)部也有一個(gè)域,域的執(zhí)行方向?yàn)橛衫锏酵猓热缭诤瘮?shù)里面alert(a),如果在里面沒有定義這個(gè)a的話,
那么它便會向外一級去尋找這個(gè)變量a,一層一層,直到找到為止,如果找不到就會報(bào)錯(cuò)

談到這里,大家對上面最不明白的應(yīng)該就是那個(gè)倉庫了,下面來詳細(xì)談?wù)?/p>

首先要了解得應(yīng)該是下面這個(gè)

瀏覽器中JS解析器的工作方式

js解析器并不會在一開始執(zhí)行所有代碼,而是會先進(jìn)行一個(gè)預(yù)解析,預(yù)解析的時(shí)候只是根據(jù)一些關(guān)鍵字來找到一些東西放到“倉庫”里面去,如果是var 變量,不會管變量是一個(gè)什么值,直接先給它賦一個(gè)值undefined,如果是一個(gè)函數(shù)function,會把整個(gè)代碼塊賦值給它(這個(gè)代碼塊并不會執(zhí)行),而如果是一個(gè)參數(shù)的話,相當(dāng)于var 參數(shù)(參考變量);

1. 預(yù)解析,“找一些東西,根據(jù)一些關(guān)鍵字,var function 參數(shù)”

???在找的過程中

所有的變量,在正式運(yùn)行代碼之前,都被賦了一個(gè)值,undefine

所有的函數(shù),在正式運(yùn)行之前,都是整個(gè)函數(shù)塊

所有的參數(shù),(a)相當(dāng)于(var a;)

但是如果因?yàn)殚_發(fā)者的不留心,這些變量名和函數(shù)名互相之間沖突了,倉庫里的東西會怎么樣呢,

答案是遇到重名的,只留一個(gè),函數(shù)和變量重名了,留函數(shù),同一級別的重名了,留后面那一個(gè)
   
2. 逐行解讀代碼

當(dāng)預(yù)解析完成之后,便相當(dāng)于開始正式工作了,之前的相當(dāng)于熱身

解讀代碼的過程中,表達(dá)式是可以改變“倉庫”里的值的,而函數(shù)調(diào)用也就是相當(dāng)于在函數(shù)里面那個(gè)域里面再執(zhí)行預(yù)解析和逐行解讀代碼的操作

表達(dá)式 = + - * / % ++ -- ! Number()...... 表達(dá)式可以去改預(yù)解析中的值

函數(shù)調(diào)用
???1.預(yù)解析
???2.逐行解讀代碼

有時(shí)間放幾個(gè)小例子來幫助更好的理解,先寫到這吧。

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

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

相關(guān)文章

  • 大話javascript 1期:作用作用

    摘要:全局作用域局部作用域局部作用域全局作用域局部作用域塊語句沒有塊級作用域塊級聲明包括和,以及和循環(huán),和函數(shù)不同,它們不會創(chuàng)建新的作用域。局部作用域只在該函數(shù)調(diào)用執(zhí)行期間存在。 一、什么是作用域? 作用域是你的代碼在運(yùn)行時(shí),各個(gè)變量、函數(shù)和對象的可訪問性。(可產(chǎn)生作用的區(qū)域) 二、JavaScript中的作用域 在 JavaScript 中有兩種作用域 全局作用域 局部作用域 當(dāng)變量定...

    NicolasHe 評論0 收藏0
  • 還擔(dān)心面試官問閉包?

    摘要:一言以蔽之,閉包,你就得掌握。當(dāng)函數(shù)記住并訪問所在的詞法作用域,閉包就產(chǎn)生了。所以閉包才會得以實(shí)現(xiàn)。從技術(shù)上講,這就是閉包。執(zhí)行后,他的內(nèi)部作用域并不會消失,函數(shù)依然保持有作用域的閉包。 網(wǎng)上總結(jié)閉包的文章已經(jīng)爛大街了,不敢說筆者這篇文章多么多么xxx,只是個(gè)人理解總結(jié)。各位看官瞅瞅就好,大神還希望多多指正。此篇文章總結(jié)與《JavaScript忍者秘籍》 《你不知道的JavaScri...

    tinyq 評論0 收藏0
  • 十分鐘快速了解《你不知道的 JavaScript》(上卷)

    摘要:最近剛剛看完了你不知道的上卷,對有了更進(jìn)一步的了解。你不知道的上卷由兩部分組成,第一部分是作用域和閉包,第二部分是和對象原型。附錄詞法這一章并沒有說明機(jī)制,只是介紹了中的箭頭函數(shù)引入的行為詞法。第章混合對象類類理論類的機(jī)制類的繼承混入。 最近剛剛看完了《你不知道的 JavaScript》上卷,對 JavaScript 有了更進(jìn)一步的了解。 《你不知道的 JavaScript》上卷由兩部...

    趙春朋 評論0 收藏0
  • 淺談對JavaScript閉包的理解

    摘要:關(guān)于循環(huán)和閉包當(dāng)循環(huán)和閉包結(jié)合在一起時(shí),經(jīng)常會產(chǎn)生讓初學(xué)者覺得匪夷所思的問題。閉包是一把雙刃劍是比較難以理解和掌握的部分,它十分強(qiáng)大,卻也有很大的缺陷,如何使用它完全取決于你自己。 在談閉包之前,我們首先要了解幾個(gè)概念: 什么是函數(shù)表達(dá)式? 與函數(shù)聲明有何不同? JavaScript查找標(biāo)識符的機(jī)制 JavaScript的作用域是詞法作用域 JavaScript的垃圾回收機(jī)制 先來...

    missonce 評論0 收藏0
  • JavaScript優(yōu)化之管理作用

    摘要:當(dāng)被創(chuàng)建時(shí),它的作用域鏈初始化為當(dāng)前運(yùn)行函數(shù)的屬性中的對象,這些值按照他們出現(xiàn)在函數(shù)中的順序,被復(fù)制到執(zhí)行環(huán)境的作用域鏈中。然后這個(gè)對象被推入作用域鏈最前端。 在計(jì)算機(jī)科學(xué)中,數(shù)據(jù)存儲的位置關(guān)系到代碼執(zhí)行過程中數(shù)據(jù)的檢索速度,有一個(gè)經(jīng)典的問題即為:通過改變數(shù)據(jù)的存儲位置來獲得最佳的讀寫性能。 Javascript中四種基本的數(shù)據(jù)存儲位置 字面量字面量只代表自身,不存儲在特定的位置。...

    fox_soyoung 評論0 收藏0
  • 這一次,我們換種姿勢學(xué)習(xí) javascript

    摘要:操作符或調(diào)用函數(shù)時(shí)傳入?yún)?shù)的操作都會導(dǎo)致關(guān)聯(lián)作用域的賦值操作。此外可以使用和來設(shè)置對象及其屬性的不可變性級別。忽視這一點(diǎn)會導(dǎo)致許多問題。使用調(diào)用函數(shù)時(shí)會把新對象的屬性關(guān)聯(lián)到其他對象。 前言 《你不知道的 javascript》是一個(gè)前端學(xué)習(xí)必讀的系列,讓不求甚解的JavaScript開發(fā)者迎難而上,深入語言內(nèi)部,弄清楚JavaScript每一個(gè)零部件的用途。本書介紹了該系列的兩個(gè)主題:...

    zone 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<