ECMAScript规范中第七大基本类型 BigInt

ES2020 BigInt JS第七大基本类型)

BigInt 是一种内置对象,它提供了一种方法来表示大于 253 - 1 的整数。这原本是 Javascript中可以用 Number 表示的最大数字。BigInt 可以表示任意大的整数。

在Js中,所以的数字都是已双精度64位浮点格式表示,这会导致Number无法精确表示非常大的整数,会将非常大的整数四舍五入。

Number类的精确范围在±9007199254740991内 也就是±( 2 53 ± 1 )

js的安全数值范围和赋值范围

定义一个BigInt

BigInt字面量:BigInt(123456)

BigInt表达式:123456n

 

 

 

BigInt的运算

BigInt的运算要注意,它在某些方面类似于Number,可以使用一些基本的运算符号进行数学运算。但是不能使用单目运算符(+ -)和无符号右移(>>>)。

在将BigInt转换Number类型时如果BigInt的数值大于Number类型的安全范围会导致精度的丢失。

BigInt不能与Number类进行直接运行,系统不会进行隐式转换,如果需要必须手动转换成同意类型(一般来说没有人会用BigInt与Number直接进行运算)

 

 

 

BigIntJson中的使用

对任何 BigInt 值使用 JSON.stringify() 都会引发 TypeError,因为默认情况下 BigInt 值不会在 JSON 中序列化。但是,如果需要,可以实现 toJSON 方法:

 

 

 

 

 

 

来整理一下js中的各大数据类型

七大原始数据类型:undefined null boolean string number Symbol BinInt

引用值类型(不细分):Object Array RegExp Date Math Function

 

posted @ 2020-02-13 10:37  ho~ho~  阅读(848)  评论(0编辑  收藏  举报