【JavaScript】关于基本数据类型和引用数据类型

基本数据类型

JavaScript的基本数据类型有:

  • String—字符串类型
  • Number—整形-----NaN也属于数值型
  • Boolean—布尔类型
  • null
  • undefined—undefined类型(空类型)
  • bigint—大整形
  • symbol—Symbol类型

引用数据类型

JavaScript的引用数据类型有:

  • function—函数类型

  • Array—数组类型

  • Object—对象类型

  • Set—Set数据类型

  • Map—Map数据类型

  • RegExp — 正则对象

  • WeakSet — 弱集合

  • WeakMap — 弱映射

基本数据类型和引用数据类型的区别

基本数据类型(原始值)
///存储在栈空间的数据段,其值直接存储在变量访问的位置,原始类型占据的空间是固定的,可将其存储在较小的栈中。这样便于迅速查寻变量的值

引用数据类型(引用值)
/// 存储在堆空间的引用对象,存储在变量处(栈)的值是一个指针,指向引用的堆空间的数据,引用值的大小会改变,所以不能把它放在栈中,否则会降低查找变量的速度。相反,放在变量的栈空间中的值是该对象存储在堆中的地址。地址的大小是固定的,所以把它存储在栈中对变量性能无任何负面影响

// 在内存中划分一个空间用于存储123,定义一个变量onum指向这个划分的内存空间(栈)
let onum = 123;
// 在栈空间新划分空间用于存储123,同时使nnum指针指向123这个地址(这个复制的是栈空间地址值,相当于拷贝了一份源文件)
nnum = onum;
// 更改nnum值,相当于更改新创建的栈空间对应地址值的值
nnum = 345;
// onum所指向的地址值的值并未改变
console.log(onum)//123



// 引用数据类型是保存在堆内存中的对象
let oarr = [123];
// 这里的复制并非是将值复制给了新的变量,而是将新变量的引用地址复制给了新变量,导致两个变量实际上指向了同一个值
narr = oarr;
// 当更改其中一个变量的数据的时候会导致两个变量的值都发生了改变
narr.push(789);
console.log(oarr,narr);//[ 123, 789 ],[ 123, 789 ]

// 注意:
// 基本数据类型是按值访问的,就是可以操作保存在变量中的实际的值.
// 基本数据类型没有属性和方法
// 基本数据类型的值是不可变的,任何方法都无法改变一个基本数据类型的值.

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值