ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で「11」が「3」未満と比較されるのはなぜですか?

JavaScript で「11」が「3」未満と比較されるのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-18 12:58:02953ブラウズ

Why Does

文字列比較の異常: JavaScript で「11」が「3」より小さい理由

JavaScript の文字列比較の動作は、直感に反する場合があります。そのような例の 1 つは、不等式 '11'

JavaScript では、文字列は辞書順に左から右に 1 文字ずつ比較されます。文字が異なる場合、比較は Unicode コード ポイントに基づいて行われます。 「1」の ASCII コードは 49 ですが、「3」の ASCII コードは 51 です。したがって、「11」の最初の文字 (コード ポイントは 49) は、「3」の最初の文字 (コード ポイントは 49) より小さくなります。 51 の点)、不等式 '11'

この動作を説明するための追加の例をいくつか示します。

  • '31' < '3': false ('31' の最初の文字は '3' の最初の文字より大きい)
  • '31' < '32': true ('31' の最初の文字は '32' の最初の文字より小さい)
  • '31' < '30': false ('31' の最初の文字は '30' の最初の文字より大きい)

同じ比較ルールが文字にも適用されることに注意することが重要です。 「b」が「a」以上の場合、「abc」は「aaa」未満であってはなりません。ただし、「c」は「d」より小さいため、「abc」は「abd」より小さくなります。

文字列を数値として比較するときにこのような異常を回避するには、「 」演算子を使用して明示的に変換することをお勧めします。 :

<code class="js">+'11' < '3'  // false</code>

以上がJavaScript で「11」が「3」未満と比較されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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