文字列比較の異常: JavaScript で "11" が "3" より小さい理由
JavaScript の文字列比較の動作は、時々直観に反することがあります。そのような例の 1 つは不等式 '11'
JavaScript では、文字列は辞書順に左から右に 1 文字ずつ比較されます。文字が異なる場合、比較は Unicode コード ポイントに基づいて行われます。 「1」の ASCII コードは 49 ですが、「3」の ASCII コードは 51 です。したがって、「11」の最初の文字 (コード ポイントは 49) は、「3」の最初の文字 (コード ポイントは 49) より小さくなります。
この動作を説明するための追加の例をいくつか示します:
次のことが重要です同じ比較ルールが文字にも適用されることに注意してください。 「b」が「a」以上の場合、「abc」は「aaa」未満であってはなりません。ただし、'c' は 'd' より小さいため、'abc' は 'abd' より小さいです。
文字列を数値として比較するときにこのような異常を回避するには、' ' 演算子を使用して明示的に変換することをお勧めします。 :
'11'
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3