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

資訊專欄INFORMATION COLUMN

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

Dr_Noooo / 2997人閱讀

摘要:全局變量是最外圍的一個執(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ù)段,五種基本類型是按值訪問的,可以直接操作保存在變量中實際的值。
* 引用類型 : 指那些可能由多個值組成的對象,引用類型的值是保存在內(nèi)存中的對象,js不允許直接訪問內(nèi)存中的位置,也就是不可直接操作對象的內(nèi)存空間。

操作對象實際是操作對象的引用而不是實際的對象,引用類型的值按引用訪問。
2、動態(tài)的屬性
引用類型的值可以添加屬性和方法,也可以刪除和修改,但基本類型不行。
//引用類型

var person = new Object();
person.name = "sheyurong";
alert(person.name);      //sheyurong

基本類型添加屬性也不會報錯。
//基本類型

var name = "sheyurong"
name.age = 27;
alert(name.age) ;           //undefined

3、賦值變量值

//基本類型

var num1 = 5;
var num2 = num1;
// num1 與 num2 中的5完全獨立,參與任何操作也不會相互影響

//引用類型

var obj1 = new Object();
var obj2 = obj1;
obj1.name = "syr";
alert(obj.name);   //"syr";
改變其中任一變量也會影響另一個,因為兩個變量引用同一變量。

4、傳遞參數(shù)
es中所有函數(shù)的參數(shù)都是按值傳遞的,基本類型與引用類型的傳參與變量的復(fù)制一樣。

function setName(obj){
    obj.name = "syr";
    obj = new Object();
    obj.name = "abc"
}
var person = new Object();
setName(person);
alert(person);   // "syr"
//可以把函數(shù)的傳參想象成局部變量一樣

5、檢測類型
typeof可以檢測基本類型,但檢測對象時并不能知道是什么類型的對象,因此,使用instanceof操作符。
語法 :

result = variable instanceof constructor
//如果變量為引用類型的實例,則instanceof返回true
例 : person instanceof Object; // person是Object的實例嗎?
根據(jù)規(guī)定,所有引用類型都是object的實例,instanceof檢測基本類型,適中返回false,因為基本類型不是對象。

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

* 執(zhí)行環(huán)境決定了變量或函數(shù)有權(quán)訪問的其他數(shù)據(jù),決定了她們各自的行為。
* 每個執(zhí)行環(huán)境都有一個環(huán)境變量對象,所有變量和函數(shù)都保存在這里面,無法訪問,但是后臺會使用它。
* 全局變量是最外圍的一個執(zhí)行環(huán)境,代碼在環(huán)境中執(zhí)行,會創(chuàng)建一個作用域鏈,用途是保證對執(zhí)行環(huán)境有權(quán)訪問所有變量和函數(shù)的有序訪問。
* 作用域鏈 : 如環(huán)境是函數(shù),則最開始只包含有一個變量-arguments對象 -> 外部環(huán)境1 -> 外部環(huán)境2 ... -> 全局。

作用域鏈中最后一個對象始終是全局執(zhí)行環(huán)境。

* 內(nèi)部環(huán)境可以通過作用域鏈訪問所有的外部環(huán)境,外部則不能訪問內(nèi)部。函數(shù)參數(shù)的訪問規(guī)則與執(zhí)行環(huán)境其他變量相同。

7、延長作用域鏈

* 使用try-catch語句的catch塊;
* with語句 : 

都是會在作用域鏈的前端添加一個變量對象,with可將制定對象添加到作用域鏈中。
catch創(chuàng)建新變量,內(nèi)涵跑出的錯誤對象聲明。

例 : function build(){
    var qs = "aaa";
        with(location){
            var url = href + qs;
        } return url ;
}
//with吧location對象引入,此種就包含了location中所有屬性和方法。










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

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

相關(guān)文章

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

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

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

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

    imtianx 評論0 收藏0
  • JS學(xué)習(xí)筆記(第4章)(變量作用域和內(nèi)存問題

    摘要:具體來說就是當(dāng)執(zhí)行流進(jìn)入下列任何一個語句時,作用域鏈就會得到加長語句的塊和語句。這兩個語句都會在作用域鏈的前端添加一個變量對象。對來說,會將指定的對象添加到作用域鏈中。 1. 基本類型和引用類型的值 JavaScript變量可以用來保存兩種類型的值:基本類性值和引用類性值。基本類型值源自以下5種基本數(shù)據(jù)類型:Undefined、Null、Boolean、Number和String。基本...

    linkin 評論0 收藏0
  • 深入javascript——作用域和閉包

    摘要:注意由于閉包會額外的附帶函數(shù)的作用域內(nèi)部匿名函數(shù)攜帶外部函數(shù)的作用域,因此,閉包會比其它函數(shù)多占用些內(nèi)存空間,過度的使用可能會導(dǎo)致內(nèi)存占用的增加。 作用域和作用域鏈?zhǔn)莏avascript中非常重要的特性,對于他們的理解直接關(guān)系到對于整個javascript體系的理解,而閉包又是對作用域的延伸,也是在實際開發(fā)中經(jīng)常使用的一個特性,實際上,不僅僅是javascript,在很多語言中都...

    oogh 評論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

發(fā)表評論

0條評論

Dr_Noooo

|高級講師

TA的文章

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