ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の「parseInt」が先頭のゼロを 8 進数として扱うのはなぜですか?それを修正するにはどうすればよいですか?
JavaScript の興味深い 8 進数の動作: 理解と回避
JavaScript を使用する場合、混乱を招く可能性のある奇妙な動作に遭遇することがあります。 parseInt 関数は、先頭にゼロが付加された数値が指定された場合、それらを 8 進整数として解釈します。これは、8 進数表現で 7 より大きい値の場合、関数はゼロを返すことを意味します。
例:
parseInt('01'); // equals 1 parseInt('02'); // equals 2 parseInt('03'); // equals 3 parseInt('04'); // equals 4 parseInt('05'); // equals 5 parseInt('06'); // equals 6 parseInt('07'); // equals 7 parseInt('08'); // equals 0 !! parseInt('09'); // equals 0 !!
この問題を解決し、parseInt が期待どおりに動作することを確認するには、次のようにします。いくつかの回避策:
ベースを指定する(基数):
parseInt を使用する場合、基数または基数を明示的に指定できます。たとえば、数値を 10 進整数として解釈するには、次の構文を使用できます:
parseInt('08', 10); // returns 8
Number オブジェクトを使用します:
または、 parseInt の代わりに Number オブジェクトを使用できます。 Number オブジェクトは、先頭にゼロのない数値を 10 進整数として自動的に解釈します。
Number('08'); // returns 8
これらの回避策を理解して採用することで、JavaScript の 8 進数の動作を効果的に克服し、正確な整数解析を保証できます。
以上がJavaScript の「parseInt」が先頭のゼロを 8 進数として扱うのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。