ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript が先頭のゼロの数値を 8 進数として解釈するのはなぜですか?

JavaScript が先頭のゼロの数値を 8 進数として解釈するのはなぜですか?

Patricia Arquette
リリース: 2024-11-05 16:46:02
オリジナル
879 人が閲覧しました

Why Does JavaScript Interpret Leading-Zero Numbers as Octals?

JavaScript が先頭のゼロの数値を 8 進数として扱う理由

JavaScript では、先頭のゼロで始まる数値は 8 進数 (基数 8) として解釈されます。 )。この動作は、8 進数リテラルの先行ゼロを許可する ECMAScript 3 のオプション拡張に由来します。

LegacyOctalIntegerLiteral Conversion

ただし、この拡張は、次の厳密モードでは禁止されていました。 ECMAScript 5. その結果、厳密モード コードで先頭にゼロがある数値は 10 進数リテラルとして扱われ、エラーが発生します。

非厳密モードでは、実装固有の動作によって先頭にゼロがある数値がどのように処理されるかが決まります。ブラウザによっては依然としてこれらを 8 進数リテラルとして解釈する場合がありますが、他のブラウザではエラーが発生する場合があります。

8 進数解釈の防止

数値が基数 10 で正しく解析されることを確認するには、次のようにします。 2 つの方法:

1.先頭のゼロを削除します

次に示すように、割り当てる前に数値から先頭のゼロを削除します。

<code class="javascript">var x = 10; // Corrected to remove leading zero</code>
ログイン後にコピー

2. parseInt(string, radix) を使用する

parseInt() 関数は文字列を引数として受け取り、文字列を解釈する基数 (基数) を指定できます。 10 進数の場合は、次のように基数 10 を使用します。

<code class="javascript">var x = parseInt("010", 10);</code>
ログイン後にコピー

結論

JavaScript で先行ゼロの数値が 8 進数として扱われないようにするには、次のようにします。先頭のゼロを削除するか、基数 10 の parseInt() を使用することをお勧めします。これにより、使用される JavaScript モードに関係なく、数値が常に基数 10 で解析されるようになります。

以上がJavaScript が先頭のゼロの数値を 8 進数として解釈するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート