基本数据类型:
数字 Number
字符串 String
未定义 undefined
空 Null
布尔值 Boolean
引用数据类型
对象 Object
基本数据类型是保存在栈内存中,对象(引用数据类型)是保存在堆内存中的 ,对象每创建一个新的对象,就会在堆内存中开辟出一块新的空间;
而变量的保存是对象内存地址的引用,如果两个变量保存的是同一个对象引用;
如:
var a = 1
var b=a
var a=3
console.log(b);
//结果是1
其中a是变量,1就是a在栈内存中直接被保存的值,b=a时 只是数值上的相等,如果给a重新赋值,打印b 不会因为a被重新赋值而改变;
var obj=new Object();
其中obj是对象,new Object()是在堆内存中开辟的一块新的空间去存放属性名和属性值;而obj的值是对应的内存地址。
var obj=new Object();
var obj2=obj;
obj.name="tom";
console.log(obj2.name);
//打印结果是tom
假如一个对象等于另一个对象,就是把对应的内存地址复制给了对方, 一但通过变量修改了属性时,另外一个也会受影响。
网友评论