JavaScript BigInt

摘要:在本教程中,您将学习有关BigInt类型的知识,它是一个内置对象,可以表示大于253 – 1的整数。

JavaScript BigInt 简介

ES2020 引入了一个新的内置对象,称为BigInt,它允许您表示大于253 - 1的整数。

bigint 是一个原始类型,类似于numberstringsymbolboolean undefinednull

要创建一个BigInt,您需要在数字字面量末尾添加n,例如

let bigInt = 9007199254740991n;Code language: JavaScript (javascript)

或者,您可以调用函数BigInt()

let bigInt = BigInt(9007199254740991);Code language: JavaScript (javascript)

请参见以下使用Number的计算

let x = Number.MAX_SAFE_INTEGER;
x = x + 1; // 9007199254740992
x = x + 1; // 9007199254740992 (same as above)Code language: JavaScript (javascript)

以及使用BigInt的计算

let x = BigInt(Number.MAX_SAFE_INTEGER);
x = x + 1; // 9007199254740992n
x = x + 1; // 9007199254740993n (correct now)Code language: JavaScript (javascript)

类型

BigInt的类型是bigint。例如

console.log(typeof bigInt); // bigint
console.log(typeof BigInt(100) === 'bigint'); // trueCode language: JavaScript (javascript)

运算符

BigInt 支持以下运算符 +*-**%,位运算符,但>>>(零填充右移)除外。它不支持一元运算符+)。

/ 运算符也适用于整数。但是,结果不会返回任何小数位。例如

let result = 3n / 2n;
console.log(result); // 1n, not 1.5nCode language: JavaScript (javascript)

比较

BigInt 不严格等于(===Number

console.log(1n === 1); // falseCode language: JavaScript (javascript)

但是,当您使用== 运算符时,BigInt 松散等于一个数字

console.log(1n == 1); // true    Code language: JavaScript (javascript)

您可以使用<<=>>= 来比较BigIntNumber

console.log(1n < 2); // true
console.log(2n > 1); // true
console.log(2n >= 2); // trueCode language: JavaScript (javascript)

条件语句

BigInt 通过Boolean() 函数在条件语句(如if 语句或逻辑运算符 ||&&, !)中转换为Boolean。换句话说,在这些情况下,它的工作方式类似于Number。例如

let count = 0n;

if(count) {
    console.log(true);
} else {
    console.log(false);
}
Code language: JavaScript (javascript)

摘要

  • BigInt 是一种新的原始类型,可以表示大于253 - 1的整数,这是 Javascript 可以用number 类型可靠地表示的最大数字。
  • 在字面量整数后面添加n 或使用BigInt() 函数来创建一个bigint
本教程是否有帮助?