- 基本数据类型
String Number Boolean Undefined Null
- 引用数据类型
JS 中的变量都是保存到 栈 内存中的
- 基本数据类型的值直接在 栈 内存中存储
- 值与值之间是独立存在,修改一个变量不会影响其它的变量
JS 中的对象是保存到 堆 内存中的,
- 每创建一个新的对象,就会在 堆 内存中开辟出一个新的空间
- 而变量保存的是对象的内存地址(对象的引用)如果两个变量保存的是同一个对象引用
- 当一个通过一个变量修改属性时,另一个也会受到影响
当修改一个变量并给它赋值时,则此时 obj 和 obj2 之间的链接断开了,不再属于同一个对象
当比较两个基本数据类型的值时,比较的是 值
- 而比较两个引用数据类型时,它是比较的对象的内存地址
- 如果两个对象一摸一样,但是地址不同,它也会返回 false
var obj3 = new Object();
obj3.name = "孙悟空";
var obj4 = new Object();
obj4.name = "孙悟空";
// 虽然两个对象的值是一样的,但是指向的内存地址不同
console.log(obj3 == obj4); // false