BigInt.prototype.toString()
尝试一下
语法
js
toString()
toString(radix)
参数
radix
可选-
一个介于 2 到 36 之间的整数,指定用于表示 BigInt 值的基数。默认值为 10。
返回值
一个表示指定 BigInt
值的字符串。
异常
RangeError
-
如果
radix
小于 2 或大于 36,则抛出此异常。
描述
BigInt
对象覆盖了 Object
的 toString
方法;它不继承 Object.prototype.toString()
。对于 BigInt
值,toString()
方法返回该值在指定基数中的字符串表示形式。
对于大于 10 的基数,字母表示大于 9 的数字。例如,对于十六进制数(基数 16)使用 a
到 f
。
如果指定的 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 的浏览器中加载。