ECMAScript 2020 中引入了一个新的基本数据类型 BigInt,用于表示任意精度的整数。在 JavaScript 中,Number 类型只能表示 2 的 53 次方以内的整数,而 BigInt 则没有这个限制,可以表示更大范围的整数。
BigInt 类型的使用方法和 Number 类型类似,但是有一些需要注意的地方。本文将介绍 BigInt 的基本用法,并详细讲解如何检查一个数字是否是 BigInt 类型。
BigInt 的基本用法
在 JavaScript 中,我们可以使用 BigInt() 函数将一个字符串或数字转换成 BigInt 类型。例如:
const bigInt1 = BigInt(12345678901234567890); const bigInt2 = BigInt("123456789012345678901234567890");
我们也可以使用后缀 n 将一个数字字面量转换成 BigInt 类型。例如:
const bigInt3 = 12345678901234567890n;
注意,如果我们直接将一个大于 2 的 53 次方的数字字面量赋值给一个变量,那么这个变量的类型将自动转换成 BigInt 类型。例如:
const bigInt4 = 9007199254740992; // 自动转换成 BigInt 类型
BigInt 类型支持所有的算术运算符和位运算符,例如:
-- -------------------- ---- ------- ----- - - ---------------------- ----- - - ---------------------- ------------- - --- -- --------------------- ------------- - --- -- --------------------- ------------- - --- -- -------------------------------------- ------------- - --- -- -- ------------- - --- -- --------------------- ------------- -- ---- -- ---------------------------------------- ---------------- -- ---------------------- ------------- - --- -- ------------- ------------- - --- -- ---------------------- ------------- - --- -- ---------------------- ------------- -- ---- -- --------------------- ------------- -- ---- -- ---------------------
如何检查一个数字是否是 BigInt 类型?
在 JavaScript 中,我们可以使用 typeof 运算符来检查一个值的数据类型。例如:
console.log(typeof 123); // "number" console.log(typeof "123"); // "string" console.log(typeof true); // "boolean" console.log(typeof undefined); // "undefined" console.log(typeof null); // "object" console.log(typeof {}); // "object" console.log(typeof []); // "object" console.log(typeof function(){}); // "function"
但是,typeof 运算符无法区分 Number 类型和 BigInt 类型。例如:
console.log(typeof 12345678901234567890n); // "bigint" console.log(typeof 12345678901234567890); // "number"
因此,我们需要使用另外一个运算符 instanceof 来检查一个值是否是 BigInt 类型。例如:
console.log(12345678901234567890n instanceof BigInt); // true console.log(12345678901234567890 instanceof BigInt); // false
注意,instanceof 运算符只能用于检查对象类型,因此我们需要将数字字面量转换成 BigInt 类型后才能使用。
总结
BigInt 是 ECMAScript 2020 中引入的一个新的基本数据类型,用于表示任意精度的整数。BigInt 类型的使用方法和 Number 类型类似,但是需要注意一些细节。在 JavaScript 中,我们可以使用 instanceof 运算符来检查一个值是否是 BigInt 类型。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65d87b081886fbafa463451c