此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
RangeError: radix must be an integer
JavaScript 异常“radix must be an integer at least 2 and no greater than 36”会在Number.prototype.toString()
或BigInt.prototype.toString()
方法的可选radix
参数被指定,但其值不在 2 到 36 之间时触发。
In this article
消息
RangeError: toString() radix argument must be between 2 and 36(基于 V8 & Safari)RangeError: radix must be an integer at least 2 and no greater than 36(Firefox)
错误类型
RangeError
什么地方出错了?
Number.prototype.toString()
或BigInt.prototype.toString()
方法的可选radix
参数已被指定。它的值必须是一个介于 2 到 36 之间的整数,用于指定表示数值时所使用的进制。例如,十进制(基数 10)数字 169 在十六进制(基数 16)中表示为 A9。
为什么该参数的值仅限于 36?大于 10 的基数使用字母字符作为数字;因此,基数不能大于 36,因为拉丁字母表(英语和许多其他语言使用的字母表)只有 26 个字符。
最常见的基数:
示例
>无效示例
js
(42).toString(0);(42).toString(1);(42).toString(37);(42).toString(150);// 不能使用这样的字符串进行格式化:(12071989).toString("MM-dd-yyyy");
有效示例
js
(42).toString(2); // “101010”(二进制)(13).toString(8); // “15”(八进制)(0x42).toString(10); // “66”(十进制)(100000).toString(16); // “186a0”(十六进制)