Data type
數(shù)據(jù)類型
基本數(shù)據(jù)類型(6種)
保存在棧內(nèi)存的簡單數(shù)據(jù)段,訪問方式為按值訪問。
- String
- Number
- Boolean
- Null
- Undefined
- Symbol(ES6)
其中null與undefined是特殊的數(shù)據(jù)類型,Null表示值為空,Undefined表示沒有定義;
Symbol是在ES6新增加的基本數(shù)據(jù)類型。
let m = 1;
m = 2; // 操作的是變量m中實(shí)際保存的值
let n = m; // 把m復(fù)制到n,棧中創(chuàng)建多一個(gè)新的變量n,值為m的值1
//然后把m的值2賦予n
m // 1
n // 2
引用數(shù)據(jù)類型
指保存在堆內(nèi)存中的對(duì)象。訪問方式是按引用訪問。
也就是,變量中保存的只是一個(gè)指針,這個(gè)指針指向內(nèi)存中的另一個(gè)位置,該位置保存著對(duì)象。
const Pet = new Object(); // 變量保存的是一個(gè)指針,指向堆內(nèi)存中保存的對(duì)象。
| 棧內(nèi)存 |
|
|
堆內(nèi)存 |
| Pet |
引用指針 |
---> |
Object |
// 操作對(duì)象時(shí),需要先從棧內(nèi)存中讀取堆內(nèi)存地址,然后再找到保存在對(duì)內(nèi)存中的值,再操作。
Pet.name = 'dog';
| 棧內(nèi)存 |
|
|
堆內(nèi)存 |
| Pet |
引用指針 |
---> |
Object{name: 'dog'} |
// 復(fù)制操作:復(fù)制的是棧內(nèi)存中的指針,復(fù)制的指針與原指針指向同一個(gè)堆內(nèi)存中保存的值。
const Animal = Pet;
| 棧內(nèi)存 |
|
|
堆內(nèi)存 |
| Pet |
引用指針 |
---> |
Object{name: 'dog'} |
| Animal |
引用指針 |
? |
|
// 操作的是引用指針指向的Object
Animal.color = 'red';
Pet // { name: 'dog', color: 'red' }
Animal // { name: 'dog', color: 'red' }
Animal === Pet // true
| 棧內(nèi)存 |
|
|
堆內(nèi)存 |
| Pet |
引用指針 |
---> |
Object{name: 'dog',color:'red'} |
| Animal |
引用指針 |
? |
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。