簡述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"
複製代碼

相關文章
相關標籤/搜索