JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptの「==」と「===」の違いをわかりやすく解説

JavaScriptには2種類の等価比較がある

JavaScriptで値の等しさを比較する際、実は2つの方法が用意されていることに気づいたことはありませんか?

  • 通常の等価演算子(あいまい等価):==(イコール2つ)
  • 厳密等価演算子:===(イコール3つ)

両者の違いは以下のとおりです。

  • ==(通常の等価)は値のみを比較し、データ型は無視します。
  • ===(厳密等価)は値とデータ型の両方を比較します。

具体例で見る違い

// true を返す
5 == "5"
// false を返す
5 === "5"

上記の例では、左辺は数値型、右辺は文字列型(引用符 ' ' で囲まれているため)です。

どちらも「5」という同じ値を持っていますが、一方は数値、もう一方は文字列です。厳密等価演算子 === は、値とデータ型の両方が一致した場合にのみ true と評価されます。

型が一致すれば === は true を返す

つまり、次の例はどちらも比較対象のデータ型が同じであるため、true を返します。

// true を返す
5 === 5
// true を返す
"5" === "5"

実務ではどちらを使うべき?

== は比較の際に暗黙的な型変換(型強制)を行うため、意図しない結果を招くことがあります。そのため、実務では予期せぬバグを防ぐ観点から、===(厳密等価演算子)を使うことがベストプラクティスとされています。

  1. JavaScriptで学ぶ二分探索木(Binary Search Tree)の基本と操作方法

    二分探索木とは二分探索木は、通常の木構造とは異なる特別な性質を持つデータ構造です。この性質により、データの検索・挿入・削除を効率的に行うことができます。二分探索木では、各ノードが次のルールに従わなければなりません。ノードの左の子は、必ず親ノードより小さい値を持つノードの右の子は、必ず親ノードより大きい値を持つこの規則が成り立つことで、値を探す際に「目的の値より小さければ左へ、大きければ右へ」と分岐をたどるだけで済み、探索範囲を毎回半分に絞り込めます。そのため、整列された配列に対する二分探索と同様の効率性が得られます。本記事を含む木構造のセクションでは、主にこの二分探索木を中心に解説を進めていき

  2. JavaScriptでhref属性の値を取得する方法|jQueryのattr()メソッド活用ガイド

    Web開発では、アンカータグ(<a>)に設定されたリンク先URL、つまりhref属性の値を取得したい場面がよくあります。この記事では、jQueryのattr()メソッドを使って、簡単にhrefの値を取得する方法を解説します。対象となるHTMLの例たとえば、以下のようなアンカータグがあったとします。<a class=demo title=get the url href=./mainPage.jsp/1245>href value at console</a>ここで必要なのは、テキスト部分ではなく、URLそのもの、すなわちhref属性の値「./mainPage