RangeError: BigInt division by zero

BigInt0n 除时,会发生 JavaScript 异常 "BigInt division by zero"(BigInt 除数为零)。

消息

RangeError: Division by zero (V8-based)
RangeError: BigInt division by zero (Firefox)
RangeError: 0 is an invalid divisor value. (Safari)

错误类型

RangeError.

哪里出错了?

除法取余运算符的除数为 0n 时。在 Number 算术中,这会产生 Infinity,但 BigInt 中没有“无穷大值”,因此会抛出错误。在执行除法之前,检查除数是否为 0n

示例

被 0n 除

js
const a = 1n;
const b = 0n;
const quotient = a / b;
// RangeError: BigInt division by zero

相反,首先检查除数是否为 0n,然后发出带有更好消息的错误,或者回退到不同的值,例如 Infinityundefined

js
const a = 1n;
const b = 0n;
const quotient = b === 0n ? undefined : a / b;

另见