简述JavaScript堆和栈

JS堆栈概念

  • JS变量都存放在内存中,而内存给变量开辟了两块区域,分别为栈区域和堆区域
  • 栈像个容器,容量小速度快
  • 堆像个房间,容量较大

基础类型值存储

  • 基本数据类型(Undefined、Null、String、Boolean、Number)的值,占据固定的大小空间,保存栈内存中
  • 栈遵循后进先出:声明一个变量,屡次赋值取最后一个值
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
复制代码

引用类型值存储

  • 引用类型(Object)的值是对象,保存在堆内存中
var people1 = {
    name: 'Tom',
    age: 20
}
var people2 = people1;
people2.name = 'Davi';
console.log(people1.name);  // "Davi"
复制代码

相关文章
相关标签/搜索