摘要:在本教程中,您将学习有关BigInt
类型的知识,它是一个内置对象,可以表示大于253 – 1的整数。
JavaScript BigInt 简介
ES2020 引入了一个新的内置对象,称为BigInt
,它允许您表示大于253 - 1
的整数。
bigint
是一个原始类型,类似于number
、string
、symbol
、boolean
undefined
和 null
。
要创建一个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'); // true
Code language: JavaScript (javascript)
运算符
BigInt
支持以下运算符 +
、*
、-
、**
、%
,位运算符,但>>>
(零填充右移)除外。它不支持一元运算符(+
)。
/
运算符也适用于整数。但是,结果不会返回任何小数位。例如
let result = 3n / 2n;
console.log(result); // 1n, not 1.5n
Code language: JavaScript (javascript)
比较
BigInt
不严格等于(===
)Number
console.log(1n === 1); // false
Code language: JavaScript (javascript)
但是,当您使用==
运算符时,BigInt
松散等于一个数字
console.log(1n == 1); // true
Code language: JavaScript (javascript)
您可以使用<
、<=
、>
、>=
来比较BigInt
和Number
console.log(1n < 2); // true
console.log(2n > 1); // true
console.log(2n >= 2); // true
Code 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
。
本教程是否有帮助?