JavaScript堆和栈
1.JavaScript堆栈概念
- js变量都存放在内存中,而内存给变量开辟了两块区域,分别为栈区域和堆区域
- 栈像个容器,容量小速度快
- 堆像个房间,容量较大
2.基础类型值存储
- 基本数据类型(string、number、boolean、undefined、null)的值,占据固定的大小空间,保存栈内存中
- 栈遵循后进先出:声明一个变量,多次赋值取最后一个值
var num1 = 10;
num1 = 15;
num1 = 20;
console.log(num1); // 20
var num2 = num1;
console.log(num2===num1); // true
num2 = 30;
console.log(num2===num1); // false
3.引用类型值存储
- 引用类型(object)的值是对象,保存在堆内存中
var people1 = {
name: 'Tom',
age: 20
}
var people2 = people1;
people2.name = 'Davi';
console.log(people1.name); // "Davi"