在 ES2021 中,JavaScript 提供了两个新的视图类型:BigInt64Array 和 BigUint64Array 数组,它们是 ArrayBuffer
的两种新类型。
与其他视图类型相比,这两个新的类型有一个重要的区别是它们用来存储非常大的整数(64 位长整数或 64 位无符号整数)。
这些新类型的出现解决了以前的一些问题,让开发人员可以更加高效地处理大整数,并且增加了很多的可操作性。
使用 BigInt64Array 和 BigUint64Array 数组
BigInt64Array 和 BigUint64Array 数组可以通过创建一个 ArrayBuffer
缓冲区来实例化。
以下是创建一个 4*64
(即 32 bytes
) 字节的 BigInt64Array
数组的方法:
const buffer = new ArrayBuffer(32); // 创建一个包含 32 字节的 ArrayBuffer 缓冲区 const bigIntArray = new BigInt64Array(buffer); // 使用 ArrayBuffer 构造 BigInt64Array 数组
而以下是创建一个 4*64
(即 32 bytes
) 字节的 BigUint64Array
数组的方法:
const buffer = new ArrayBuffer(32); // 创建一个包含 32 字节的 ArrayBuffer 缓冲区 const bigUIntArray = new BigUint64Array(buffer); // 使用 ArrayBuffer 构造 BigUint64Array 数组
BigInt64Array
BigInt64Array
位于全局对象 window
中,可以通过这个对象调用。
BigInt64Array
用来存储 64 位有符号整数( -9223372036854775808 至 9223372036854775807)。这使得我们可以用它来存储更大范围的整数。
示例代码:
const buffer = new ArrayBuffer(8); // 创建一个包含 8 字节的 ArrayBuffer 缓冲区 const int64Array = new BigInt64Array(buffer); // 创建一个 64 位长整数数组 int64Array[0] = BigInt(Number.MAX_SAFE_INTEGER) + 10n; console.log(int64Array[0]);
输出:9007199254740995
BigUint64Array
BigUint64Array
与 BigInt64Array
相反。它用来存储 64 位无符号整数(0 至 18446744073709551615)。
示例代码:
const buffer = new ArrayBuffer(8); // 创建一个包含 8 字节的 ArrayBuffer 缓冲区 const uint64Array = new BigUint64Array(buffer); // 创建一个 64 位无符号整数数组 uint64Array[0] = 18446744073709551615n; // 设置数组第一个元素的值 console.log(uint64Array[0]);
输出:18446744073709551615
总结
ES2021 中的 BigInt64Array
和 BigUint64Array
提供了处理大整数的新方式,它们的出现增加了 JavaScript 的可操作性。这些新的视图类型是用于存储应用程序数据的另一种方便的方式,并且在以后的开发中将会变得越来越重要。
本文提供了示例代码,并详细介绍了如何使用 BigInt64Array
和 BigUint64Array
。这些示例将为对于这些新类型的学习和应用提供一些指导和帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649952fa48841e98946515ea