ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の「parseInt」が先頭のゼロを 8 進数として扱うのはなぜですか?それを修正するにはどうすればよいですか?

JavaScript の「parseInt」が先頭のゼロを 8 進数として扱うのはなぜですか?それを修正するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-11 16:47:14234ブラウズ

Why Does JavaScript's `parseInt` Treat Leading Zeros as Octal, and How Can I Fix It?

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 が期待どおりに動作することを確認するには、次のようにします。いくつかの回避策:

  1. ベースを指定する(基数):
    parseInt を使用する場合、基数または基数を明示的に指定できます。たとえば、数値を 10 進整数として解釈するには、次の構文を使用できます:

    parseInt('08', 10); // returns 8
  2. Number オブジェクトを使用します:
    または、 parseInt の代わりに Number オブジェクトを使用できます。 Number オブジェクトは、先頭にゼロのない数値を 10 進整数として自動的に解釈します。

    Number('08'); // returns 8

これらの回避策を理解して採用することで、JavaScript の 8 進数の動作を効果的に克服し、正確な整数解析を保証できます。

以上がJavaScript の「parseInt」が先頭のゼロを 8 進数として扱うのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。