知识点:
基本数据类型:String Number Boolean Null Underfined
引用数据类型:Object
Js中的变量都是保存在栈内存中的,
- 基本数据类型的值直接在栈内存中存储,
值与值之间独立存在,修改一个变量不会影响其他的变量
- 对象是保存在堆内存中的,每创建一个新的对象,就会在堆内存中开辟一个新的空间,
而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,当一个对象通过变量修改属性时,另一个也会受到影响
对象知识补充
1.将对象的地址赋空
obj2=null; //设置obj2为null
console.log(obj); //输出[object object]
console.log(obj2); //输出 null
即,将obj2的地址赋值为null,
2.不同对象相同属性值的比较(地址不同)
//两个同值变量的比较
var c =10;
var d =10;
console.log(c==d); //输出true
//两个同值对象的比较
var obj3 =new Object();
var obj4 =new Object();
obj3.name='张三';
obj4.name='张三';
console.log(obj3==obj4); //输出false,比较两对象的地址,不同
console.log(obj3.name==obj4.name); //输出ture,比较两对象属性的值,相同
总结: 当比较两个基本数据类型的值时,就是比较值,
而比较两个引用数据类型时,它是比较的对象的内存地址,如果两个对象一模一样,但是地址不同,也会返回false。