引用類型蕊爵,自己的感覺泛粹,就是引用類型 溶褪,就是把js中的基礎(chǔ)類型(js中并沒有類的概念)引用過來給自己用然后就變成了引用類型入问,那么js的基礎(chǔ)類型和引用類型到底在內(nèi)存中是怎么操作的呢食茎,請看:
兩種類型:
- ECMAScript變量包含兩種不同類型的值:基本類型值蒂破、引用類型值
- 基本類型值:指的是保存在棧內(nèi)存中的簡單數(shù)據(jù)段
- 引用類型值:指的是那些保存在堆內(nèi)存中的對象,意思是别渔,變量中保存的實際上只是一個指針附迷,這個指針執(zhí)行內(nèi)存中的另一個位置,由該位置保存對象
兩種訪問方式:
- 基本類型值:按值訪問哎媚,操作的是他們實際保存的值喇伯;
- 引用類型值:按引用訪問,當查詢時拨与,我們需要先從棧中讀取內(nèi)存地址稻据,然后再順藤摸瓜地找到保存在堆內(nèi)存中的值
兩種類型復制
- 基本類型變量的復制:從一個變量向一個變量復制時,會在棧中創(chuàng)建一個新值买喧,然后把值復制到為新變量分配的位置上
- 引用類型變量的復制:復制的是存儲在棧中的指針捻悯,將指針復制到棧中未新變量分配的空間中,而這個指針副本和原指針執(zhí)行存儲在堆中的同一個對象淤毛;復制操作結(jié)束后今缚,兩個變量實際上將引用同一個對象;因此改變其中的一個低淡,將影響另一個
函數(shù)參數(shù)的傳遞:
- ECMA中所有函數(shù)的參數(shù)都是按值傳遞的
兩種變量類型檢測
- Typeof操作符是檢測基本類型的最佳工具
- 如果變量值是nul或者對象姓言,typeof 將返回“object”
- Instanceof用于檢測引用類型,可以檢測到具體的蔗蹋,它是什么類型的實例
-
如果變量是給定引用類型的實例事期,instanceof操作符會返回true
轉(zhuǎn)載自http://www.cnblogs.com/qqqiangqiang/p/4895998.html