文字列の辞書編集的比較
指定されたコード スニペット内の文字列 "11" と "3" の比較は、次の理由により好奇心を引き起こします。真実の予期せぬ結果。比較は文字列の長さに基づいて行われるのではないかと思われるかもしれませんが、そうではありません。代わりに、JavaScript 文字列は辞書編集的に比較されます。
辞書編集的な比較は、文字列内の文字を表す Unicode コード ポイントのシーケンスを比較することによって行われます。まず、各文字列の最初の文字を比較します。これらの文字が等しい場合は、2 番目の文字の比較が続きます。異なるコードポイントを持つ文字が見つかった場合、または文字列の 1 つが文字数を使い果たした場合、比較は終了します。
「11」と「3」の場合、最初の文字は「1」と「3」です。 '。 「1」は「3」よりも Unicode コード ポイントが低いため、辞書編集上の比較によれば、「11」は「3」より小さくなります。これは、驚くべき結果を説明しています。長い文字列には、より低いコード ポイントの文字が含まれているため、短い文字列よりも劣っていると見なされます。
例:
'11' < '3' // true '31' < '3' // false '31' < '32' // true '31' < '30' // false 'abc' < 'aaa' // false 'abc' < 'abd' // true
文字列を明示的に変換するには数値の場合は、単項プラス ( ) 演算子を使用します:
+'11' < '3' // false
以上がJavaScript 文字列「11」と「3」が辞書編集上の比較で真であると比較されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。