BigInt.prototype.toString()

基线 广泛可用

此功能已经很完善,可以在许多设备和浏览器版本上使用。它从以下时间起在所有浏览器中可用 2020 年 9 月.

toString() 方法是 BigInt 值的方法,它返回一个表示指定 BigInt 值的字符串。尾部的 "n" 不是字符串的一部分。

尝试一下

语法

js
toString()
toString(radix)

参数

radix 可选

一个介于 2 到 36 之间的整数,指定用于表示 BigInt 值的基数。默认值为 10。

返回值

一个表示指定 BigInt 值的字符串。

异常

RangeError

如果 radix 小于 2 或大于 36,则抛出此异常。

描述

BigInt 对象覆盖了 ObjecttoString 方法;它不继承 Object.prototype.toString()。对于 BigInt 值,toString() 方法返回该值在指定基数中的字符串表示形式。

对于大于 10 的基数,字母表示大于 9 的数字。例如,对于十六进制数(基数 16)使用 af

如果指定的 BigInt 值为负数,则符号将被保留。即使基数为 2 也是如此;返回的字符串是 BigInt 值的正二进制表示形式,前面加一个 - 符号,**而不是** BigInt 值的二进制补码。

toString() 方法要求其 this 值为 BigInt 原语或包装对象。对于其他 this 值,它会抛出 TypeError,而不会尝试将它们强制转换为 BigInt 值。

由于 BigInt 没有 [Symbol.toPrimitive]() 方法,因此当 BigInt 对象 用于需要字符串的环境中时,例如 模板字面量,JavaScript 会自动调用 toString() 方法。但是,BigInt 原语 值不会查询 toString() 方法来 强制转换为字符串 - 相反,它们使用与初始 toString() 实现相同的算法直接进行转换。

js
BigInt.prototype.toString = () => "Overridden";
console.log(`${1n}`); // "1"
console.log(`${Object(1n)}`); // "Overridden"

示例

使用 toString()

js
17n.toString(); // "17"
66n.toString(2); // "1000010"
254n.toString(16); // "fe"
(-10n).toString(2); // "-1010"
(-0xffn).toString(2); // "-11111111"

负零 BigInt

没有负零 BigInt,因为整数中没有负零。-0.0 是一个 IEEE 浮点数概念,它只出现在 JavaScript Number 类型中。

js
(-0n).toString(); // "0"
BigInt(-0).toString(); // "0"

规范

规范
ECMAScript 语言规范
# sec-bigint.prototype.tostring

浏览器兼容性

BCD 表只在启用 JavaScript 的浏览器中加载。

参见