js数据类型BigInt

JavaScript018

js数据类型BigInt,第1张

BigInt 数据类型的目的是比 Number 数据类型支持的范围更大的整数值。

BigInt构造函数:

Number 类型只能安全地表示-9007199254740991 ( -(2^53-1 )) 和9007199254740991( 2^53-1 )之间的整数

JS 提供 Number.MAX_SAFE_INTEGER 常量来表示 最大安全整数, Number.MIN_SAFE_INTEGER 常量表示最小安全整数:

不能使用严格相等运算符将 BigInt 与常规数字进行比较,因为它们的类型不同:

与 BigInt 操作数一起使用时,算术运算符应该返回 BigInt 值。因此,除法 (/) 运算符的结果会自动向下舍入到最接近的整数。例如:

BigInt和Number 执行算术计算,首先需要确定应该在哪个类型中执行该操作。为此,只需通过调用 Number()或BigInt() 来转换操作数:

当 Boolean 类型与 BigInt 类型相遇时, BigInt 的处理方式与 Number 类似,换句话说,只要不是 0n ,BigInt就被视为 truthy 的值:

位操作符如 |、&、<<、>>和^ 对 Bigint 的操作方式与 Number类似 。下面是一些例子

不能使用 Number 和 BigInt 操作数的 混合执行算术运算 ,需要通过显式转换其中的一种类型。 此外,出于兼容性原因,不允许在 BigInt 上使用一元加号 (+) 运算符。

Integer 是基本数据类型

Integer以整型数据用来存储整数,整数包括正整数,负整数和零。整型常量采用十进制整数表示。如 1991,0,-123等等都是整型常量。而52.0或131.4都不是整型常量。

Integer 变量存储为最接近编译环境的长度,整型数据的长度及其取值范围并不固定,受编译环境影响。在不同的编程语言中做此类型声明时,具体实现方式也可能会有所区别。

javascript,所有数字都保存为64浮点数字,这决定了整数的精度只能达到53位二进制。对于大于这个范围的整数,JavaScript不能准确地表示出来,这使得JavaScript不适合进行科学计算和财务计算。

现在有人提议引入一个新的数据类型integer来解决这个问题。整型数据只用于表示整数,对位数没有限制,任何位数的整数都可以准确表示。为了与数字类型不同,整数类型的数据必须用后缀n表示。