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

資訊專欄INFORMATION COLUMN

變量、作用域和內(nèi)存問題

lentrue / 2950人閱讀

摘要:使用聲明的變量會動被添加到最近的環(huán)境中查詢標(biāo)識符,現(xiàn)在作用域鏈的最前端開始搜索,逐步向上級查詢,直到找到匹配的標(biāo)識符,在變量查詢中,訪問局部變量要比全局變量更快,因為不需要向上搜索作用域。

基本類型和引用類型的值

基本類型值指的是簡單的數(shù)據(jù)段;
引用類型值指那些可能由多個值構(gòu)成的對象。
不能給基本類型添加屬性,可以給引用類型值動態(tài)的添加屬性。

基本類型按值訪問,存放在棧內(nèi)存中。
引用類型按引用訪問,存放在堆內(nèi)存中,棧內(nèi)存中存放的是它的地址。

復(fù)制引用類型,復(fù)制的是棧內(nèi)存中的地址,所以改變一個變量會影響另一個變量。
不管是棧內(nèi)存還是堆內(nèi)存,復(fù)制的都是棧內(nèi)存中的地址。

傳遞參數(shù)

所有的函數(shù)參數(shù)都是按值傳遞的。

function setName(obj){    //這里將要傳遞一個引用類型的參數(shù),但不是按引用傳遞,是按值傳遞
    obj.name = "lee";
}
var person = new Object();//
setName(person);
alert(person.name);        //打印lee
//js沒有按引用傳參的功能,切記不能把傳遞引用參數(shù)當(dāng)作按引用傳參

傳參是局部變量

var box = "Lee";
function setBox = {    //通過傳參也是局部變量,作用域在setBox()范圍下
    alert(box);        //打印"red"
}
setBox("red");
alert(box);            //打印"Lee"
檢測類型

typeof只能檢測基本數(shù)據(jù)類型
instanceof能檢測引用類型的值
語法:

result = variable instanceof constructor

使用時構(gòu)造函數(shù)首字母需要大寫;
變量和引用類型的值對應(yīng)返回true,否則返回false。
instanceof在檢測基本類型時,始終返回false.

作用域

全局環(huán)境被認為是window對象

作用域鏈

作用域鏈的用途是保證對執(zhí)行環(huán)境的有權(quán)訪問的所有變量和函數(shù)的有序訪問。
在同一作用域中可以互相訪問;在不同作用域中,全局環(huán)境不能訪問局部變量,在局部環(huán)境中可以訪問全局變量。
作用域鏈例子:

var box = "Lee";
function setBox(){
    function setColor(){    //setColor()方法作用域在setBox()內(nèi)
        var b = "kkk";        //b的作用域在setColor()內(nèi)
        alert(b);            //打印kkk
        return 123;            //返回123
    }
    return setColor();        //調(diào)用setColor(),返回123
}
alert(setBox());            //調(diào)用setBox(),打印123
沒有塊級作用域

iffor語句的花括號沒有作用域的功能。
使用var聲明的變量會動被添加到最近的環(huán)境中;
查詢標(biāo)識符,現(xiàn)在作用域鏈的最前端開始搜索,逐步向上級查詢,直到找到匹配的標(biāo)識符,
在變量查詢中,訪問局部變量要比全局變量更快,因為不需要向上搜索作用域。

垃圾收集

垃圾收集器會在運行的時候給存儲在內(nèi)容中的變量加上標(biāo)記,然后去掉環(huán)境中正在使用變量的標(biāo)記,沒有被去掉標(biāo)記的標(biāo)量將被視為準(zhǔn)備刪除的變量。

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

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

相關(guān)文章

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

    摘要:執(zhí)行環(huán)境的類型有兩種全局全局執(zhí)行環(huán)境局部函數(shù)執(zhí)行環(huán)境每個環(huán)境都可以向上搜索作用域鏈,以查詢變量和函數(shù)名但任何環(huán)境都不能通過向下搜索作用域鏈而進入另一個執(zhí)行環(huán)境。內(nèi)部可通過作用域鏈訪問外部,外部不能訪問內(nèi)部。 變量、作用域和內(nèi)存問題 ECMAScript 數(shù)據(jù)類型 基本類型(5種): Undefined,Null,Boolean,Number,String typeof() 檢測...

    YacaToy 評論0 收藏0
  • 變量作用域和內(nèi)存問題

    摘要:變量作用域和內(nèi)存問題基本類型和引用類型的值基本類型就是簡單的數(shù)據(jù)段種值類型,而引用類型就是對象操控對象的引用。但是不但能訪問自己的變量,也能訪問和全局作用域下的變量。延長作用域鏈相當(dāng)于創(chuàng)造了一個新的變量對象在當(dāng)前作用域的上方。 變量作用域和內(nèi)存問題 1.基本類型和引用類型的值 基本類型就是簡單的數(shù)據(jù)段(5種值類型),而引用類型就是對象(操控對象的引用)。 1.1復(fù)制變量值 引用類型實際...

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

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

    imtianx 評論0 收藏0
  • 高程(第四章) 變量作用域和內(nèi)存問題

    摘要:不允許直接訪問內(nèi)存中的位置,也就是說不能直接操作對象的內(nèi)存空間。在操作對象時,實際上是在操作對象的引用而不是實際的對象。解除引用的真正作用是讓值脫離執(zhí)行環(huán)境,以便垃圾收集器下次運行時將其回收 1 基本類型和引用類型的值 基本數(shù)據(jù)類型是按值訪問的,因為可以操作保存在變量中的實際的值 基本類型值在內(nèi)存中占據(jù)固定大小的空間,因此被保存在棧內(nèi)存中 引用類型的值是保存在內(nèi)存中的對象。JavaSc...

    xavier 評論0 收藏0
  • JavaScript變量、作用域和內(nèi)存問題

    摘要:全局變量是最外圍的一個執(zhí)行環(huán)境,代碼在環(huán)境中執(zhí)行,會創(chuàng)建一個作用域鏈,用途是保證對執(zhí)行環(huán)境有權(quán)訪問所有變量和函數(shù)的有序訪問。作用域鏈中最后一個對象始終是全局執(zhí)行環(huán)境。內(nèi)部環(huán)境可以通過作用域鏈訪問所有的外部環(huán)境,外部則不能訪問內(nèi)部。 1、基本類型和引用類型的值 * 基本類型 : 指的是簡單的數(shù)據(jù)段,五種基本類型是按值訪問的,可以直接操作保存在變量中實際的值。 * 引用類型 : 指那些可能...

    Dr_Noooo 評論0 收藏0

發(fā)表評論

0條評論

lentrue

|高級講師

TA的文章

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