成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript紅寶書筆記(四)---變量、作用域和內存問題

imtianx / 2987人閱讀

摘要:在操作對象時,實際上是在操作對象的引用而不是實際的對象。為此,引用類型的值是按引用訪問的。標記清除是目前主流的垃圾收集算法,這種算法的思想是給當前不使用的值加上標記,然后再回收其內存

1.在操作對象時,實際上是在操作對象的引用而不是實際的對象。為此,引用類型的值是按引用訪問的。

2.當從一個變量向另一個變量復制引用類型的值時,兩個變量實際上將引用同一個對象,因此,改變其中一個變量,就會影響另一個變量。

var obj1 = new Object();
var obj2 = obj1;
obj1.name = "Nicholas";
alert(obj2.name); //"Nicholas"

3.訪問變量有按值和按引用兩種方式,而參數(shù)只能按值傳遞;
在向參數(shù)傳遞基本類型的值時,被傳遞的值會被復制給一個局部變量,即命名參數(shù);
在向參數(shù)傳遞引用類型的值時,會把這個值在內存中的地址復制給一個局部變量,因此這個局部變量的變化會反映在函數(shù)的外部;

function setName(obj) {
    obj.name = "Nicholas";
    obj = new Object();
    obj.name = "Greg";
}
var person = new Object();
setName(person);
alert(person.name); //"Nicholas"

上面實例代碼,person變量將內存地址作為值傳遞給setName參數(shù)。第一次給obj變量添加name屬性是在person對象的內存地址基礎上添加,之后重新賦新對象給obj變量,該對象為局部對象,內存地址與person對象并不相同,所以第二次添加name屬性并不會影響person屬性。也證明了參數(shù)傳遞方式為按值傳遞。

4.檢測基本數(shù)據(jù)類型可以使用typeof;檢測引用類型使用instanceof;

alert(colors instanceof Array);

5.JavaScript沒有塊級作用域,也就是for循環(huán)、if語句等{}并不會擁有自己的作用域,所以在這些語句中定義的變量,在外部執(zhí)行環(huán)境中也是可以被訪問的。

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

6.“標記清除”是目前主流的垃圾收集算法,這種算法的思想是給當前不使用的值加上標記,然
后再回收其內存

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

轉載請注明本文地址:http://systransis.cn/yun/104543.html

相關文章

  • 寶書筆記-第4章-變量作用域和內存問題

    showImg(https://segmentfault.com/img/bVbwfHP?w=1919&h=2347);

    nemo 評論0 收藏0
  • 【進階2-2期】JavaScript深入之從作用域鏈理解閉包

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

    simpleapples 評論0 收藏0
  • JavaScript高級程序設計》筆記變量作用域和內存問題

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

    Zack 評論0 收藏0
  • 【進階2-1期】深入淺出圖解作用域鏈和閉包

    摘要:本期推薦文章從作用域鏈談閉包,由于微信不能訪問外鏈,點擊閱讀原文就可以啦。推薦理由這是一篇譯文,深入淺出圖解作用域鏈,一步步深入介紹閉包。作用域鏈的頂端是全局對象,在全局環(huán)境中定義的變量就會綁定到全局對象中。 (關注福利,關注本公眾號回復[資料]領取優(yōu)質前端視頻,包括Vue、React、Node源碼和實戰(zhàn)、面試指導) 本周開始前端進階的第二期,本周的主題是作用域閉包,今天是第6天。 本...

    levius 評論0 收藏0
  • Effective JavaScript讀書筆記(二)

    摘要:盡可能的使用局部變量,少用全局變量。正確的實現(xiàn)就是在函數(shù)體內部使用將聲明成局部變量。在新特性中,引入了塊級作用域這個概念,因此還可以使用,來聲明局部變量。它們共享外部變量,并且閉包還可以更新的值。 變量作用域 作用域,對于JavaScript語言來說無處不在,變量作用域,函數(shù)作用域(運行時上下文和定義時上下文),作用域污染等等都跟作用域息息相關,掌握JavaScript作用于規(guī)則,可以...

    Yuqi 評論0 收藏0

發(fā)表評論

0條評論

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