JavaScriptの「!=」と「!==」演算子の違いをわかりやすく解説
JavaScriptには、値が等しくないことを判定する不等価演算子として「!=」と「!==」の2種類が用意されています。この2つは似た名前ですが、動作に重要な違いがあります。本記事では、それぞれの特徴と具体的な使い分け方について解説します。
「!=」比較演算子(緩い不等価)とは
「!=」は型のチェックを行わない不等価演算子です。比較の前に、両オペランドのデータ型を自動的に変換(型強制・暗黙的な型変換)してから値を比較します。
そのため、数値と文字列のように異なる型同士でも、値が同じであれば等しいと判断されます。例えば、1 != '1' は文字列 '1' が数値 1 に変換されて比較されるため、結果は false(等しくない、とはならない)になります。
「!==」比較演算子(厳密な不等価)とは
一方、「!==」は型のチェックも含めて比較する厳密な不等価演算子です。データ型の変換を行わず、値だけでなく型が一致しているかどうかまで判定します。
例えば、1 !== '1' の場合、数値と文字列という異なる型であるため、値が同じでも true(等しくない)という結果になります。
「!=」と「!==」の使い分けのポイント
!=:型を気にせず「値だけ」を比較したい場合に使用します。ただし、意図しない型変換によるバグを引き起こす可能性があるため、注意が必要です。!==:型も含めて厳密に比較したい場合に使用します。予期しない挙動を防げるため、一般的にはこちらを使うことが推奨されています。
サンプルコード
次の例では、「!=」と「!==」の動作の違いを実際に確認できます。
<!DOCTYPE html>
<html>
<head>
<title>Operator Example</title>
</head>
<body>
<script language="JavaScript">
console.log("1 != '1' : " + (1 != '1'));
console.log("1 !== '1' : " + (1 !== '1'));
</script>
</body>
</html>
実行結果
1 != '1' : false 1 !== '1' : true
このように、同じ比較対象でも使用する演算子によって結果が異なります。!= は型変換後の値だけを見るため false となり、!== は型の違いも検出するため true となります。JavaScriptでの比較処理では、意図しない型変換を避けるために、原則として「!==」「===」といった厳密な演算子を使用することをおすすめします。
-
「!==」と「==!」の違いを解説!PHPの比較演算子
PHPには一見よく似ていますが、動作がまったく異なる演算子が存在します。その代表格が「!==」と「==!」です。この記事では、それぞれの演算子の意味と違いを、サンプルコード付きでわかりやすく解説します。 「!==」比較演算子とは 「!==」は「型も含めて等しくない」ことを判定する比較演算子です。値の比較時にデータ型の自動変換(型ジャグリング)を行わず、厳密な型チェックを実施します。そのため、たとえば 1 !== 1 は数値の1と文字列の1というように型が異なるため、true を返します。 「==!」比較演算子とは 実は「==!」という単一の演算子は存在しません。「==!」は「==」と「!」
-
Pythonの「==」と「is」演算子の違いをわかりやすく解説
「==」と「is」の基本的な違い Pythonには、オブジェクトを比較するための方法として「==」演算子と「is」演算子の2つがあります。一見すると似たような働きをするように見えますが、この2つはまったく異なる目的を持っています。 「==」(等価演算子)は、2つの変数の値が等しいかどうかを比較します。一方、「is」(同一性演算子)は、2つの変数が同じオブジェクト(同じメモリ上の場所)を参照しているかどうかを確認します。 サンプルコード 以下のコードは、「==」と「is」の動作の違いを示すシンプルな例です。ここでは空のリストを扱っています。list1とlist2はそれぞれ独立した別々の空のリスト