ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の辞書編集上の文字列比較で「11」が「3」未満になるのはなぜですか?
辞書編集上の文字列比較を理解する: なぜ「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」の前に来ます。
シナリオ例
明示的な数値変換
文字列を数値として比較するには、次のようにします。演算子を使用して明示的に変換できます:
<code class="javascript">+'11' < '3': False</code>
以上がJavaScript の辞書編集上の文字列比較で「11」が「3」未満になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。