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

變量:基本類型值和引用類型值太示。

二者不同:1.動(dòng)態(tài)的屬性:引用類型可以添加屬性和方法柠贤,基本類型不可;

2.復(fù)制變量值:復(fù)制變量值時(shí)类缤,基本類型值會(huì)在變量對(duì)象上創(chuàng)建新值臼勉,并把該值復(fù)制到為新變量分配的位置。引用類型也會(huì)創(chuàng)建新值餐弱,不過該值是一個(gè)指針宴霸,指向存儲(chǔ)在堆內(nèi)存中的對(duì)象。

3.傳遞參數(shù):在為函數(shù)傳遞參數(shù)時(shí)膏蚓,不會(huì)影響原始的基本類型值瓢谢,但是會(huì)影響引用類型值(傳遞參數(shù)時(shí),對(duì)于基本類型值驮瞧,會(huì)將其值復(fù)制給一個(gè)局部變量氓扛;對(duì)于引用類型值,會(huì)將其地址復(fù)制給一個(gè)局部變量)论笔。

function test1(num){

num=num+1;

return num;

}

var res=1;

varresult=test1(res);//res=1;result=2;

function setname(obj){

obj.name="gly";

}

var obj1=new Object();

var obj2=setname(obj1);//obj1.name="gly"

4.檢測(cè)類型:檢測(cè)基本數(shù)據(jù)類型時(shí)用typeof,但是檢測(cè)引用類型時(shí)采郎,需要用instanceof千所。(typeof只能檢測(cè)是否時(shí)引用類型,但不能檢測(cè)是哪種具體的引用類型)

var arr=[1,2,3];

var b=3;

console.log(typeof arr);//object

console.log(b instanceof Object);//true

console.log(arr instanceof Array);//true

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

執(zhí)行環(huán)境定義了函數(shù)或變量有權(quán)訪問的其他數(shù)據(jù)蒜埋,決定各自的行為淫痰。

每個(gè)執(zhí)行環(huán)境都有相對(duì)應(yīng)的對(duì)象,并且對(duì)象中包括變量和函數(shù)理茎。

每個(gè)函數(shù)都有自己的執(zhí)行環(huán)境黑界。

當(dāng)代碼在一個(gè)環(huán)境中執(zhí)行時(shí),創(chuàng)建變量對(duì)象的一個(gè)作用域鏈:以保證對(duì)執(zhí)行環(huán)境中的變量和函數(shù)的有序訪問皂林。

作用域鏈的前端是當(dāng)前環(huán)境的變量和函數(shù)朗鸠,依次外擴(kuò),最后面是全局環(huán)境中的變量和函數(shù)础倍。

標(biāo)識(shí)符解析:從作用域鏈前端開始依次向后尋找標(biāo)識(shí)符烛占。

1.1延長(zhǎng)作用域鏈:在作用域鏈的前端臨時(shí)增加一個(gè)變量對(duì)象

方法:1. try-catch語句的catch塊;

2. with語句沟启;

1.2沒有塊級(jí)作用域忆家。

塊級(jí)作用域:任何一對(duì){}中的語句集都屬于一個(gè)塊,塊內(nèi)變量不能在塊外調(diào)用德迹。

但是js有函數(shù)作用域芽卿,因此可以用函數(shù)實(shí)現(xiàn)塊級(jí)作用域。

for(var i=0;i<10;i++){

}

console.log(i);//10

function test(){

var j;

for(j=0;j<10;j++){

}

}

console.log(j);//j is not defined

垃圾收集

JS具有自動(dòng)垃圾收集機(jī)制胳搞。(執(zhí)行環(huán)境負(fù)責(zé)管理代碼執(zhí)行時(shí)的內(nèi)存)

垃圾回收策略:

標(biāo)記清除(最常見):變量進(jìn)入環(huán)境卸例,將變量標(biāo)記為“進(jìn)入環(huán)境”,離開環(huán)境時(shí)肌毅,標(biāo)記“離開”筷转,最后垃圾回收器會(huì)把標(biāo)記有離開的變量回收內(nèi)存。

引用計(jì)數(shù)(不常見):聲明一個(gè)變量并將其賦值引用類型值悬而,引用計(jì)數(shù)為1呜舒,再將這個(gè)值復(fù)制給另一個(gè)變量,加1笨奠,當(dāng)變量值更改時(shí)袭蝗,減1,當(dāng)為0時(shí)般婆,收回內(nèi)存呻袭。跟蹤記錄每個(gè)值被引用的次數(shù),但會(huì)導(dǎo)致循環(huán)引用問題(兩個(gè)變量互相引用腺兴,永不為1)左电。

解除引用:將變量值賦值為null,以使其脫離執(zhí)行環(huán)境。可以消除循環(huán)引用現(xiàn)象篓足,并且對(duì)垃圾收集也有好處段誊。主要應(yīng)用于全局對(duì)象及屬性和循環(huán)引用變量的引用。

解除引用:將變量值賦值為null,以使其脫離執(zhí)行環(huán)境栈拖×幔可以消除循環(huán)引用現(xiàn)象,并且對(duì)垃圾收集也有好處涩哟。主要應(yīng)用于全局對(duì)象及屬性和循環(huán)引用變量的引用索赏。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市贴彼,隨后出現(xiàn)的幾起案子潜腻,更是在濱河造成了極大的恐慌,老刑警劉巖器仗,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件融涣,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡精钮,警方通過查閱死者的電腦和手機(jī)威鹿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來轨香,“玉大人忽你,你說我怎么就攤上這事”廴荩” “怎么了檀夹?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)策橘。 經(jīng)常有香客問我,道長(zhǎng)娜亿,這世上最難降的妖魔是什么丽已? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮买决,結(jié)果婚禮上沛婴,老公的妹妹穿的比我還像新娘。我一直安慰自己督赤,他們只是感情好嘁灯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著躲舌,像睡著了一般丑婿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天羹奉,我揣著相機(jī)與錄音秒旋,去河邊找鬼。 笑死诀拭,一個(gè)胖子當(dāng)著我的面吹牛迁筛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播耕挨,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼细卧,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了筒占?” 一聲冷哼從身側(cè)響起贪庙,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赋铝,沒想到半個(gè)月后插勤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡革骨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年农尖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片良哲。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盛卡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出筑凫,到底是詐尸還是另有隱情滑沧,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布巍实,位于F島的核電站滓技,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏棚潦。R本人自食惡果不足惜令漂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望丸边。 院中可真熱鬧叠必,春花似錦、人聲如沸妹窖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽骄呼。三九已至共苛,卻和暖如春判没,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俄讹。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工哆致, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人患膛。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓摊阀,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親踪蹬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胞此,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容