RangeError: radix 必须为整数
当 Number.prototype.toString()
或 BigInt.prototype.toString()
方法的可选 radix
参数被指定且不在 2 到 36 之间时,就会出现 JavaScript 异常“radix 必须是至少为 2 且不超过 36 的整数”。
消息
RangeError: toString() radix argument must be between 2 and 36 (V8-based & Safari) RangeError: radix must be an integer at least 2 and no greater than 36 (Firefox)
错误类型
哪里出错了?
指定了 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);
// You cannot use a string like this for formatting:
(12071989).toString("MM-dd-yyyy");
有效情况
js
(42).toString(2); // "101010" (binary)
(13).toString(8); // "15" (octal)
(0x42).toString(10); // "66" (decimal)
(100000).toString(16); // "186a0" (hexadecimal)