ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript 文字列「11」と「3」が辞書編集上の比較で真であると比較されるのはなぜですか?

JavaScript 文字列「11」と「3」が辞書編集上の比較で真であると比較されるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-18 12:36:03848ブラウズ

Why Do JavaScript Strings

文字列の辞書編集的比較

指定されたコード スニペット内の文字列 "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 サイトの他の関連記事を参照してください。

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