存储的区别
基本数据类型存储在 栈内存 中,比如:string; number; undefined; null; boolean
复杂数据类型
- 将数据本体存放在
堆内存中,比如对象或者数组,然后将指向该堆内存的地址,存放在数组名或者对象名中 - 数组名或者对象名存放在栈内存中
赋值的区别
基本数据类型:赋值以后,两个变量就没有关系了
复杂数据类型:赋值以后,两个变量操作一个存储空间
比较的区别
基本数据类型是 值 的比较
var a = 1
var b = 2
console.log(a == b) // false
复杂数据类型是 存储地址 的比较
var obj1 = {a: 1}
var obj2 = obj1
var obj3 = {a: 1}
console.log(obj1 === obj2) // true
console.log(obj1 === obj3) // false
传参的区别
基本数据类型:将值拷贝一份传递给形参,在函数内修改不会影响外界
复杂数据类型:将存储地址赋值给形参,在函数内修改会影响外界