文字列比較の異常: JavaScript で「11」が「3」より小さい理由
JavaScript の文字列比較の動作は、直感に反する場合があります。そのような例の 1 つは、不等式 '11'
JavaScript では、文字列は辞書順に左から右に 1 文字ずつ比較されます。文字が異なる場合、比較は Unicode コード ポイントに基づいて行われます。 「1」の ASCII コードは 49 ですが、「3」の ASCII コードは 51 です。したがって、「11」の最初の文字 (コード ポイントは 49) は、「3」の最初の文字 (コード ポイントは 49) より小さくなります。 51 の点)、不等式 '11'
この動作を説明するための追加の例をいくつか示します。
同じ比較ルールが文字にも適用されることに注意することが重要です。 「b」が「a」以上の場合、「abc」は「aaa」未満であってはなりません。ただし、「c」は「d」より小さいため、「abc」は「abd」より小さくなります。
文字列を数値として比較するときにこのような異常を回避するには、「 」演算子を使用して明示的に変換することをお勧めします。 :
<code class="js">+'11' < '3' // false</code>
以上がJavaScript で「11」が「3」未満と比較されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。