JavaScript中的栈内存与堆内存

Author:WyAr'T  满怀梦想,你我皆风华正茂,梦死方坠人生暮年。
百度已收录

JavaScript中的数据类型

前五种属于基本数据类型,Object属于引用数据类型

  • String 字符串
  • Number 数值
  • Boolean 布尔值
  • Null 空值
  • Undefined 未定义
  • Object 对象

栈内存

JS中的基本数据类型都是保存到栈内存中的,基本数据类型的值直接在栈内存中存储,值与值之间独立存在,修改一个变量不会影响其他的变量

堆内存

引用数据类型是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,当通过一个变量修改属性值时,另一个也会受到影响

图解

var x=new Object();
x.name="wyart";
var y=new Object();
y.age=18;

栈内存与堆内存
栈与堆

比较

基本数据类型比较的是具体的值
引用数据类型比较的是值是地址

var ddr=new Object();
var ddr1=new Object();
ddr.name="hahaha";
ddr1.name="hahaha";
console.log(ddr==ddr1);   //false
console.log(ddr.name==ddr1.name);   //true

console.log(ddr==ddr1);比较的值是地址,返回false
console.log(ddr.name==ddr1.name);比较的是具体的值,返回true

本质上:比较的都是

声明:WyArT'Blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - JavaScript中的栈内存与堆内存


满怀梦想,你我皆风华正茂,梦死方坠人生暮年。