JavaScript
::!=(不等価演算子)
編集:2022.08.07 by T.A.
→
2つのオペランドが等しくないかをチェックし、ブール値の結果を返します。
厳密不等価演算子とは異なり、異なる型のオペランドを変換して比較を行おうとします。
X != Y
等価演算子(== および !=)は、抽象等価比較アルゴリズムを使用して二つのオペランドを比較します。これは、およそ次のようにまとめることができます:
- 両方のオペランドがオブジェクトである場合、同じオブジェクトを指している場合に限り true を返します。
- 一方のオペランドが null で、もう一方が undefined であった場合は true を返します。
- オペランドの型が異なる場合は、比較前に同じ型に変換を試みます。
- 数値と文字列を比較する場合、文字列を数値に変換しようとします。
- 一方のオペランドが Boolean である場合、その Boolean のオペランドが true である場合は 1 に、 false である場合は +0 に変換します。
- オペランドのうちの1つがオブジェクトで、もう一方が数値または文字列である場合は、そのオブジェクトの valueOf() および toString() メソッドを使用してプリミティブに変換しようとします。
- オペランドが同じ型である場合は、次のよう比較します。
- String: 両方のオペランドが同じ文字を同じ順序で持っている場合のみ、true を返します。
- Number: 数値型は同じ値の数値である場合のみ、true を返します。+0 と -0 は同じ値と見なされます。一方のオペランドが NaN である場合は false を返します。
- Boolean: 両方のオペランドが共に true であるか、共に false である場合のみ true になります。
この演算子と厳密等価(===)演算子の最も顕著な違いは、厳密等価演算子が型変換を試みない点です。厳密等価演算は、オペランドの型が異なる場合は常に異なるものと見なします。
これは等価演算子の否定なので、次の2行は常に同じ結果になります:
D=x != y;
D=!(x == y);
等価演算子と同様に、不等価演算子は異なる型のオペランドを変換して比較しようとします:
D=3 != "3"; //=false
¶例を省く
テスト