数据类型之间的区别

56 阅读1分钟

存储的区别

基本数据类型存储在 栈内存 中,比如: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

传参的区别

基本数据类型:将值拷贝一份传递给形参,在函数内修改不会影响外界
复杂数据类型:将存储地址赋值给形参,在函数内修改会影响外界