JavaScript の辞書編集上の文字列比較で「11」が「3」未満になるのはなぜですか?

Barbara Streisand
リリース: 2024-10-18 12:06:38
オリジナル
988 人が閲覧しました

Why is JavaScript's Lexicographical String Comparison Causing

辞書編集上の文字列比較を理解する: なぜ「11」は「3」より小さいのか?

JavaScript では、文字列は辞書編集的に比較され、文字を意味します不一致が見つかるか、1 つの文字列が終わるまで、文字ごとに指定します。この動作により、数値を表す文字列を比較するときに予期しない結果が生じる可能性があります。

実際の辞書編集上の比較

次のコードを考えてみましょう:

<code class="javascript">if ('11' < '3') alert('true');</code>
ログイン後にコピー

'11' の最初の文字 ('1') が辞書編集上 '3' の最初の文字 ('3') より小さいため、このコードは true と評価されます。つまり、JavaScript は文字列を数値ではなく文字シーケンスとして比較します。

文字コードの同等性

文字の辞書編集上の順序は、Unicode 文字コードに基づいています。 「1」の Unicode 文字コードは 49 ですが、「3」のコードは 51 です。49 は 51 より小さいため、文字シーケンスでは「1」が「3」の前に来ます。

シナリオ例

  • '31' < '3': 辞書編集上、'3' は '1' より大きいため、偽です。
  • '31' < '32': 辞書編集上、'1' は '2' より小さいため、真です。
  • '31' < '30': 辞書編集上、'0' は '1' より大きいため、偽です。
  • 'abc' < 'aaa': false。辞書編集上、'b' は 'a' より小さくないためです。
  • 'abc' < 'abd': True。辞書編集的に 'c' は 'd' より小さいためです。

明示的な数値変換

文字列を数値として比較するには、次のようにします。演算子を使用して明示的に変換できます:

<code class="javascript">+'11' < '3': False</code>
ログイン後にコピー

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

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!