基本数据类型与引用数据类型区别

时间:2021-1-8 作者:admin

基本数据类型:Number、String、Boolen 、 Symbol、 null 、 undefined

引用数据类型:object(普通对象、数组、正则、函数……)

区别

数据类型 基本数据类型 引用数据类型
储存的元素 地址 (指针)
储存的地点

eg1

const a = []

对于常量 a 来说,假设内存地址(指针)为 #001,那么在地址 #001 的位置存放了值 [],常量 a 存放了地址(指针) #001,再看以下代码

const a = []
const b = a
b.push(1)

当我们将变量赋值给另外一个变量时,复制的是原本变量的地址(指针),也就是说当前变量 b 存放的地址(指针)也是 #001,当我们进行数据修改的时候,就会修改存放在地址(指针) #001 上的值,也就导致了两个变量的值都发生了改变。

eg2

function test(person) {
    person.age = 26
    person = {  name: 'yyy',
                age: 30      }
    return person
}
const p1 = {    name: 'yck',
                age: 25      }
const p2 = test(p1)
console.log(p1) // ->  26 'yck'
console.log(p2) // ->  30 'yyy'

第一步:p1 => 指向对象{name:'yck', age: 25}的指针 0001

第二步:test(p1) 传指针person.age = 26 修改该对象

第三步:代码继续执行 ,其中person为形参,初始为p1(指向0001)。然后因为 const声明的 p1是常量,不可以整体修改,所以函数内部person = {} 将在内存中新开辟一个空间存放形参,即另一个对象指针(0002)

第四步:return person 指针与函数头部 ,故而p2 为指向后者对象的指针

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。