在变量复制方面,基本类型和引用类型也有所不同,基本类型复制的是值本身,而引用类型复制的是地址
1、基本类型:Undefined、Null、String、Number、Boolean、Symbol
基本类型的变量是存放在栈(Stack)内存里【基本类型的值是按值访问的】
var a = true
b = a
b = false //a=true b false 复制的是值本身
2、引用类型(统称Object类型)细分为Object类型、Array类型、Date类型、RegExp类型、Function类型
引用类型的值是保存在堆内存中的对象【引用类型是按引用访问的】
var obj1 = {};
var obj2 = {};
console.log(obj1 == obj2);// false
console.log(obj1 === obj2);// false
var s = {a: 'aaa'}
var ss = s
ss.a = 'ssss'
console.log(s) //ssss
console.log(ss) //ssss
注:obj1 和 obj2 分别引用的是存放在堆内存中的2个不同的对象, obj1 和 obj2 的值(引用地址)不一样
网友评论