JavaScript で先頭にゼロがある数値は、その形式に応じて解釈が異なります。
歴史的進化
初期の頃、JavaScript では先頭のゼロは 8 進数 (基数 8) を表し、16 進数 (基数 16) の先頭の 0x と同様でした。
10, 012, 0xA // 均表示十进制数 10
ただし、ECMAScript 3 では、この 8 進数表現はオプションの拡張子に降格され、10 進整数リテラルには先頭にゼロを付けることができなくなりました (実装が拡張子をサポートしない限り)。
ES5 以降の厳密モード
ES5 の厳密モードでは、先頭にゼロが付いた 10 進リテラルは使用できなくなりました:
0 // 无效 NonZeroDigit DecimalDigits(opt) // 有效
ES6新しい表現の導入
ES6 では、先頭記号 0b と 8 進リテラルが導入されています。 0o:
従来の 8 進リテラル
推奨されなくなりました。先行ゼロのある 8 進数表現 (つまり、従来の 8 進数リテラル) は、非厳密モードでも引き続き使用できます:
010 // 可能会被解释为 8 或 10,具体取决于实现
ベスト プラクティス
10 進数として解釈されるため、先頭のゼロを削除するか、次の値を使用することをお勧めします。 parseInt は数値を解析します:
parseInt('010', 8) // 返回 8 parseInt('010', 10) // 返回 10
以上がJavaScript 数値の先頭のゼロはどのように解釈されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。