TypeScript BigInt运用
发布时间:2023-03-30 08:48:45 所属栏目:教程 来源:
导读:本节介绍的 bigint 数据类型是用来表示那些已经超出了 number 类型最大值的整数值,对于总是被诟病的整数溢出问题,使用了 bigint 后将完美解决。
bigint 是一种基本数据类型(primitive data type)。
JavaSc
bigint 是一种基本数据类型(primitive data type)。
JavaSc
本节介绍的 bigint 数据类型是用来表示那些已经超出了 number 类型最大值的整数值,对于总是被诟病的整数溢出问题,使用了 bigint 后将完美解决。 bigint 是一种基本数据类型(primitive data type)。 JavaScript 中可以用 Number 表示的最大整数为 2^53 - 1,可以写为 Number.MAX_SAFE_INTEGER。如果超过了这个界限,可以用 BigInt来表示,它可以表示任意大的整数。 在一个整数字面量后加 n 的方式定义一个 BigInt,如:10n 或者调用函数 BigInt(): const theBiggestInt: bigint = 9007199254740991n const alsoHuge: bigint = BigInt() const hugeString: bigint = BigInt("9007199254740991") theBiggestInt === alsoHuge // true theBiggestInt === hugeString // true 代码解释: 第 1-3 行,分别是三种表达整数 9007199254740991 的方式,方式不同含义相同,所以完全相等。 BigInt 与 Number 的不同点: BigInt 不能用于 Math 对象中的方法。 BigInt 不能和任何 Number 实例混合运算,两者必须转换成同一种类型。 BigInt 变量在转换为 Number 变量时可能会丢失精度。 const biggest: number = Number.MAX_SAFE_INTEGER const biggest1: number = biggest + const biggest2: number = biggest + biggest1 === biggest2 // true 超过精度 代码解释: 第 1 行,声明了一个 number 类型最大值的变量 biggest,对于 number 类型来说,这个就是最大精度。 第 3-4 行,最大精度就是这个容器已经完全满了,无论往上加多少都会溢出,所以这两个值是相等的。 而使用 BigInt: const biggest: bigint = BigInt(Number.MAX_SAFE_INTEGER) const biggest1: bigint = biggest + 1n const biggest2: bigint = biggest + 2n biggest1 === biggest2 // false 代码解释: 第 1 行,声明了一个 bigint 类型的变量 biggest。 第 3-4 行,bigint 类型就是用来表示那些已经超出了 number 类型最大值的整数值,也就是这个容器还没满,在此基础上加上两个不同的值,其结果不相等。 使用 typeof 检测类型时,BigInt 对象返回 bigint: typeof 10n === 'bigint' // true typeof BigInt() === 'bigint' // true typeof === 'number' // true typeof Number() === 'number' // true 代码解释: typeof 操作符返回一个字符串,表示未经计算的操作数的类型,用来判断基础数据类型。 第 1-2 行,两个书写方式都是 bigint 类型,所以相等。 第 4-5 行,两种书写方式都是 number 类型,所以相等。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |