js基本数据类型、引用数据类型的赋值

js数据类型

js 数据类型有8种

在ES5,数据类型是 6种:Number、String、Boolean、undefined、object、Null。

在ES6 中新增了一种 Symbol 。这种类型的对象永不相等,即使创建的时候传入相同的值。可以解决属性名冲突的问题,做为标记。

谷歌67版本中还出现了一种 bigInt。是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)。

js数据类型:
Number、String、Boolean、Null、undefined、object、symbol、bigInt

其中包含:基本数据类型、复杂数据类型、引用数据类型。
基本数据类型: 除Object之外的都是
引用数据类型:object,里面包含的 function、Array、Date

对于基本数据类型来说,它的值直接存储在栈内存中,而对于引用类型来说,它在栈内存中仅仅存储了一个引用,而真正的数据存储在堆内存中

当我们对数据进行操作的时候,会发生两种情况

一、基本数据类型
在这里插入图片描述
我们可以看到,基本数据类型数据的值赋值于一个变量stringA,再将a的值赋值于变量stringB, 后修改stringB的值,可以看到stringB的值被修改了,而stringA的值没有被修改。两个变量都使用独立的数据。

二、引用数据类型
在这里插入图片描述
可以看到的是,两个对象的值都被修改了
对象是引用类型的值,对于引用类型来说,我们将 obj 赋予newObj 的时候,其实仅仅只是把 obj存储在栈堆中的的引用赋予了 newObj,而两个对象此时指向的是在堆内存中的同一个数据,所以当我们修改任意一个值的时候,修改的都是堆内存中的数据,而不是引用,所以只要修改了,同样引用的对象的值也自然而然的发生了改变。

如遇需要改变引用数组值且不改变原数组的场景,请看下篇文章:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值