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

資訊專欄INFORMATION COLUMN

《JavaScript高級(jí)程序設(shè)計(jì)(第3版)》——變量、作用域和內(nèi)存問題(四)

YacaToy / 1338人閱讀

摘要:執(zhí)行環(huán)境的類型有兩種全局全局執(zhí)行環(huán)境局部函數(shù)執(zhí)行環(huán)境每個(gè)環(huán)境都可以向上搜索作用域鏈,以查詢變量和函數(shù)名但任何環(huán)境都不能通過向下搜索作用域鏈而進(jìn)入另一個(gè)執(zhí)行環(huán)境。內(nèi)部可通過作用域鏈訪問外部,外部不能訪問內(nèi)部。

變量、作用域和內(nèi)存問題 ECMAScript 數(shù)據(jù)類型 基本類型(5種):

UndefinedNullBooleanNumberString

typeof() 檢測一個(gè)變量是否是基本數(shù)據(jù)類型

基本類型在內(nèi)存中占據(jù)固定大小的空間,因此被保存在 內(nèi)存中。

從一個(gè)變量向另一個(gè)變量復(fù)制 基本類型 的值,會(huì)創(chuàng)建這個(gè)值的一個(gè)副本。

引用類型:

保存在內(nèi)存中的對(duì)象。

引用類型的值是對(duì)象,保存在 內(nèi)存中。

instanceof() 檢測是什么類型的對(duì)象

alert (color instanceof Array)  // true or false
alert (persion instanceof Object) // true

包含引用類型值的變量實(shí)際上包含的并不是對(duì)象本身,而是一個(gè)指向該對(duì)象的指針。

從一個(gè)變量向另一個(gè)變量復(fù)制 引用類型 的值,復(fù)制的其實(shí)是指針,因此兩個(gè)變量最終都指向同一個(gè)對(duì)象。

執(zhí)行環(huán)境及作用域

所有變量(包括基本類型和引用類型)都存在于一個(gè)執(zhí)行環(huán)境當(dāng)中,這個(gè)執(zhí)行環(huán)境(也稱為作用域)決定了變量的生命周期,以及哪一部分代碼可以訪問其中的變量。

執(zhí)行環(huán)境的類型有兩種:

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

局部(函數(shù)執(zhí)行環(huán)境)

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

延長作用域鏈

當(dāng)執(zhí)行流進(jìn)入下列任何一個(gè)語句時(shí),作用域鏈就會(huì)得到加長:

try-catch 語句的catch

with語句

沒有塊級(jí)作用域

對(duì)于 javascript 來說,由 for 語句創(chuàng)建的變量 i 在 for 循環(huán)結(jié)束后,也依舊存在于循環(huán)外部的執(zhí)行環(huán)境中。

for (var i =0; i < 10; i++) {
    doSomething(i);
}
alert(i); //10

聲明變量:

使用 var 聲明:添加到最接近的環(huán)境中。

不用 var 聲明,自動(dòng)添加到全局環(huán)境。所以建議一定要先聲明。

查詢標(biāo)識(shí)符:

從作用域的前端開始,向上逐級(jí)查詢與給定名字匹配的標(biāo)識(shí)符。

垃圾收集

JavaScript 具有自動(dòng)垃圾收集機(jī)制,也就是說,執(zhí)行環(huán)境會(huì)負(fù)責(zé)管理代碼執(zhí)行過程中使用的內(nèi)存。

原理:找出那些不再使用的變量,然后釋放其占用的內(nèi)存。垃圾回收器會(huì)按照固定的時(shí)間間隔周期性的執(zhí)行這一操作。

通常有兩個(gè)策略:

標(biāo)記清除(最常用的垃圾清除方式) 引用計(jì)數(shù)(不太常見)

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

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

相關(guān)文章

  • JavaScript高級(jí)程序設(shè)計(jì)》(3)讀書筆記 4章 變量作用域和內(nèi)存問題

    摘要:具體說就是執(zhí)行流進(jìn)入下列任何一個(gè)語句時(shí),作用域鏈就會(huì)得到加長語句的塊。如果局部環(huán)境中存在著同名的標(biāo)識(shí)符,就不會(huì)使用位于父環(huán)境中的標(biāo)識(shí)符訪問局部變量要比訪問全局變量更快,因?yàn)椴挥孟蛏纤阉髯饔糜蜴湣? 基本類型和引用類型的值 ECMAscript變量包含 基本類型值和引用類型值 基本類型值值的是基本數(shù)據(jù)類型:Undefined, Null, Boolean, Number, String ...

    lidashuang 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)》筆記:變量作用域和內(nèi)存問題

    摘要:局部變量只在函數(shù)執(zhí)行過程中存在。此時(shí),局部變量就沒有存在的必要了,因此可以釋放他們所占的內(nèi)存以供他們使用。引用計(jì)數(shù)的含義是跟蹤記錄每個(gè)值被引用的次數(shù)。這一做法適合于大多數(shù)全局變量和局部變量的屬性。 基本類型和引用類型的值 ECMAScript變量可能包含兩種不同數(shù)據(jù)類型的值:基本類型值和引用類型值。基本類型值指的是簡單的數(shù)據(jù)段,而引用類型的值指那些可能有多個(gè)值構(gòu)成的對(duì)象。 動(dòng)態(tài)的屬性 ...

    Zack 評(píng)論0 收藏0
  • JavaScript 闖關(guān)記》之作用域和閉包

    摘要:作用域和閉包是最重要的概念之一,想要進(jìn)一步學(xué)習(xí),就必須理解作用域和閉包的工作原理。全局和局部作用域的關(guān)系在函數(shù)體內(nèi),局部變量的優(yōu)先級(jí)高于同名的全局變量。作用域鏈的用途,是保證對(duì)執(zhí)行環(huán)境有權(quán)訪問的所有變量和函數(shù)的有序訪問。 作用域和閉包是 JavaScript 最重要的概念之一,想要進(jìn)一步學(xué)習(xí) JavaScript,就必須理解 JavaScript 作用域和閉包的工作原理。 作用域 任何...

    Jacendfeng 評(píng)論0 收藏0
  • JavaScript紅寶書筆記()---變量作用域和內(nèi)存問題

    摘要:在操作對(duì)象時(shí),實(shí)際上是在操作對(duì)象的引用而不是實(shí)際的對(duì)象。為此,引用類型的值是按引用訪問的。標(biāo)記清除是目前主流的垃圾收集算法,這種算法的思想是給當(dāng)前不使用的值加上標(biāo)記,然后再回收其內(nèi)存 1.在操作對(duì)象時(shí),實(shí)際上是在操作對(duì)象的引用而不是實(shí)際的對(duì)象。為此,引用類型的值是按引用訪問的。 2.當(dāng)從一個(gè)變量向另一個(gè)變量復(fù)制引用類型的值時(shí),兩個(gè)變量實(shí)際上將引用同一個(gè)對(duì)象,因此,改變其中一個(gè)變量,就會(huì)...

    imtianx 評(píng)論0 收藏0
  • Javascript高級(jí)程序設(shè)計(jì) ()》變量作用域和內(nèi)存問題

    摘要:在中雖然對(duì)象通過標(biāo)記清除的方式進(jìn)行垃圾收,但與對(duì)象卻是通過引用計(jì)數(shù)回收垃圾的,也就是說只要涉及及就會(huì)出現(xiàn)循環(huán)引用問題。如果垃圾收集例程回收的內(nèi)存分配量低于,則變量字面量和或數(shù)組元素的臨界值就會(huì)加倍。 只挑本人重要的寫(有夾雜其他補(bǔ)充) 基本類型和引用類型的值 描述:基本類型值指的是簡單的數(shù)據(jù)段,而引用類型值指那些可能由多個(gè)值構(gòu)成的對(duì)象。 動(dòng)態(tài)的屬性 引用類型的值,我們可以為其添加屬性和...

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

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

0條評(píng)論

閱讀需要支付1元查看
<