在了解数据类型之间的区别以前咱们首先要了解计算机的运行机制。javascript
所谓堆栈内存,其实就是在计算机内存中分配出来的一块空间,用来执行和储存代码的java
图例以下: web
了解了浏览器的运行机制,接下来咱们在看基本数据类型和引用数据类型之间的关系浏览器
值类型因为结构相对简单,直接把建立的值存储到“栈内存”中便可,由此咱们能够总结一下栈内存的做用;函数
let a = 12;
let b = a;
b = 13;
console.log(a);
复制代码
结合上面讲述的浏览器的底层机制简单分析一下此题:引用数据类型的结构相对复杂(是一个综合体,包含不少值),因此不能直接存储在栈内存中,须要ui
- 单独开辟空间来存储,这个空间就是“堆内存”,引用数据类型值都存储在单独开辟的“堆内存”中!
堆内存只有一个做用:spa
引用数据类型中对象的执行过程:(不包含函数,函数涉及内容较多后续单独讲解)code
例题:cdn
let n = {
name: '芝麻'
};
let m = n;
m.name = '金色';
console.log(n.name);
复制代码
综上所述,简单一句话归纳:对象
- 基本数据类型是按值操做,值存储在栈内存中;
- 引用数据类型是按照堆内存的地址来操做;