说一说JS数据类型有哪些,区别是什么?

基本数据类型:Number 、String、Boolean、BigInt、Symbol、Null、Undefined。

引用数据类型:Object,如普通对象,数组,正则,日期,Math数学函数。

区别:

内存中存储方式不同:

  • 基本数据类型:存在栈中,占据空间小,频繁使用。
  • 引用数据类型:在堆内存中,占据空间大;在栈中存储指针,调用的时候会检索在栈中的地址,取得地址后从堆中获得实体。

ES6新增数据类型:Symbol、BigInt。

Symbol:特点就是没有重复的数据,可以作为object的key。具有唯一性。

Symbol用法:for无法获取到这个key,需要使用Object。getOwnPropertySymbols(obj)才能获得这个obj对象中key。

let key = Symbol('key');
let obj = { [key]: 'symbol'};
let keyArray = Object.getOwnPropertySymbols(obj); // 返回一个数组[Symbol('key')]
obj[keyArray[0]] // 'symbol'

BigInt:特点就是数据涵盖的范围大,能够解决超出普通数据类型范围报错的问题。

BigInt用法:

  • 整数末尾直接+n:647326483767797n
  • 调用BigInt()构造函数:BigInt("647326483767797")

注意:BigInt和Number之间不能进行混合操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值