今回は、jsで比較演算子を科学的に使用する方法と、jsで比較演算子を科学的に使用するための注意点について説明します。以下は実際的なケースです。
比較演算子
最も一般的なタイプの関係演算子は比較演算子で、2 つの値の相対的な順序を決定するために使用されます。比較演算子は次のとおりです。
未満 (<) < 演算子は、最初のオペランドが 2 番目のオペランドより小さい場合は true と評価され、false と評価されます。より大きい (>)> 演算子は、最初のオペランドが 2 番目のオペランドより大きい場合、true と評価され、false と評価されます。以下 (< =)) <= 演算子は、最初のオペランドが 2 番目のオペランド以下の場合は true
と評価され、それ以外の場合は false と評価されます。以上 (=)) > = 演算子は、最初のオペランドが 2 番目のオペランド以上の場合は true
と評価され、それ以外の場合は false と評価されます。これらの比較演算子のオペランドは、任意の型にすることができます。ただし、比較は数値と文字列でのみ可能であるため、数値または文字列ではないオペランドは変換されます。比較と変換は次のとおりです。
両方のオペランドが数値である場合、または両方の数値が数値に変換される場合、それらは数値的に比較されます。
両方のオペランドが文字列であるか、文字列に変換された場合、それらは文字列として比較されます。
一方のオペランドが文字列であるか文字列に変換され、もう一方のオペランドが数値であるか数値に変換される場合、演算子は文字列を数値に変換しようとして数値比較を実行します。文字列が数値を表さない場合、
に変換され、比較は false になります。 (
1.1 では、文字列を数値に変換すると、nan が返される代わりにエラーが発生します。) オブジェクトが数値または文字列に変換できる場合、JavaScript は数値変換を実行します。たとえば、これは、日付オブジェクトに対して数値比較を実行し、2 つの日付がもう一方の日付より早いかどうかを比較することを意味します。
比較演算子は、オペランドを数値または文字列に正常に変換できない場合、常に false を返します。両方のオペランドが OR の場合、比較演算子に変換すると常に false が生成されます。
文字列比較
は、Unicode エンコーディングの各文字の数値を使用して、厳密に文字ごとに行われることに注意してください。 Unicode 標準では、場合によっては異なる文字シーケンスを使用して同等の文字列をエンコードできますが、JavaScript 比較演算子はこれらのエンコードの違いを検出せず、すべての文字列が正規形式で表現されていると想定します。特に、文字列の比較では大文字と小文字が区別され、Unicode エンコード (少なくとも ASCII サブセットの場合) では、すべての大文字が「小文字」より小さいことに注意してください。このルールは、予期しない場合に混乱を招く結果を招く可能性があります。たとえば、< 演算子によれば、文字列「zoo」は文字列「aardvark」よりも小さくなります。より強力な文字列比較アルゴリズムについては、文字列の localecompare() を参照してください。メソッドでは、アルファベット順に並べられた地域固有の定義も考慮されます。大文字と小文字を区別しない比較では、最初にすべての小文字または大文字の文字列を入力する必要があります。 toLowerCase()