の2番目のパラメーターはparseInt()
、最初のパラメーターが解析されるベースを定義します。私はいくつかの数字をいじってみましたが、ベースが36より大きい場合、正しい答えが得られないことがわかりました。
parseInt("1", 36);
// -> 1
parseInt("1", 37);
// -> NaN
制限はありますか?そして、なぜそれは36ですか?
テストを実行したときはChromeを使用していました
の2番目のパラメーターはparseInt()
、最初のパラメーターが解析されるベースを定義します。私はいくつかの数字をいじってみましたが、ベースが36より大きい場合、正しい答えが得られないことがわかりました。
parseInt("1", 36);
// -> 1
parseInt("1", 37);
// -> NaN
制限はありますか?そして、なぜそれは36ですか?
テストを実行したときはChromeを使用していました
36は10+26です。アルファベットには26文字、さらに0〜9があります。これが、使用できる最大基数です。
ECMAScript仕様では、最大基数を36と指定しています。
10 + 26 = 36
より高い基数をサポートすることも可能であることにも言及する必要があります36
。仕様は、基数が36を超える場合、たとえば37〜62の場合に、大文字と小文字を区別する文字を使用するように調整できます。記号やアクセント付き文字などの特殊文字を使用できます。
そうでない理由は、それが曖昧で不必要だからです。カスタム基数のアルゴリズムの解析はそれほど難しくないはずであり、必要に応じて作成することができます。
基数を36に制限すると、パフォーマンスとユーティリティのバランスをとることができます。
最大値は36です。これは、標準のアルファベットの桁数と文字数(0123456789abcdefghijklmnopqrstuvwxyz)であるためです。このような他のことについて疑問がある場合は、公式のECMAScript言語仕様をブックマークすることをお勧めします。これですべてです。