このページはコミュニティーの尽力で英語から翻訳されました。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
エラーメッセージ
js
RangeError: invalid argument (Edge)RangeError: radix must be an integer at least 2 and no greater than 36 (Firefox)RangeError: toString() radix argument must be between 2 and 36 (Chrome)エラーの種類
RangeErrorエラーの原因
Number.prototype.toString() メソッドまたはBigInt.prototype.toString() メソッドのオプションのradix 引数が指定されています。この引数は、数値を表すために使用する基数を指定する 2 から 36 の整数 (数) でなければなりません。例えば、 10 進数の数値 169 は 16 進数では A9 と表現されます。
なぜ上限が 36 なのでしょうか? 10 よりも大きい基数の場合は、アルファベットが数値として用いられます。したがって、 (英語およびほかの多くの言語で用いられる) ラテン文字のアルファベットは 26 文字しかないため、基数は 36 以上にすることができません。
一般的な基数には、次のものがあります。
例
>無効な場合
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" (十六進法)