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

資訊專(zhuān)欄INFORMATION COLUMN

JavaScript紅寶書(shū)筆記(四)---變量、作用域和內(nèi)存問(wèn)題

imtianx / 2979人閱讀

摘要:在操作對(duì)象時(shí),實(shí)際上是在操作對(duì)象的引用而不是實(shí)際的對(duì)象。為此,引用類(lèi)型的值是按引用訪(fǎng)問(wèn)的。標(biāo)記清除是目前主流的垃圾收集算法,這種算法的思想是給當(dāng)前不使用的值加上標(biāo)記,然后再回收其內(nèi)存

1.在操作對(duì)象時(shí),實(shí)際上是在操作對(duì)象的引用而不是實(shí)際的對(duì)象。為此,引用類(lèi)型的值是按引用訪(fǎng)問(wèn)的。

2.當(dāng)從一個(gè)變量向另一個(gè)變量復(fù)制引用類(lèi)型的值時(shí),兩個(gè)變量實(shí)際上將引用同一個(gè)對(duì)象,因此,改變其中一個(gè)變量,就會(huì)影響另一個(gè)變量。

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

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

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

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

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

alert(colors instanceof Array);

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

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

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

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

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

相關(guān)文章

  • 寶書(shū)筆記-第4章-變量、作用域和內(nèi)存問(wèn)題

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

    nemo 評(píng)論0 收藏0
  • 【進(jìn)階2-2期】JavaScript深入之從作用域鏈理解閉包

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

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

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

    Zack 評(píng)論0 收藏0
  • 【進(jìn)階2-1期】深入淺出圖解作用域鏈和閉包

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

    levius 評(píng)論0 收藏0
  • Effective JavaScript讀書(shū)筆記(二)

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

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

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

0條評(píng)論

閱讀需要支付1元查看
<