JavaScriptの「=」演算子と「==」演算子の主な違いとは?代入と比較の基本をわかりやすく解説
「=」と「==」はまったく役割が違う
JavaScriptにおいて「=」(イコール1つ)は代入演算子です。右側の値を左側の変数に格納するために使われます。一方、「==」(イコール2つ)は等価演算子(緩い比較)であり、左右の値が等しいかどうかを判定し、結果として true または false を返します。
つまり、「=」は値を「入れる」ための演算子、「==」は値を「比べる」ための演算子です。初心者のうちはこの2つを混同してしまうケースが多いため、役割の違いをしっかり理解しておきましょう。
サンプルコード
次の例では、変数 x に数値の5を、変数 y に文字列の"6"を「=」演算子で代入しています。その後、document.write() で x の値を出力し、「==」演算子を使って x と y が等しいかどうかを比較した結果を画面に表示しています。
<html>
<body>
<p id="equal"></p>
<script>
var x = 5;
var y = "6";
document.write(x);
document.getElementById("equal").innerHTML =
(x == y);
</script>
</body>
</html>
実行結果
5
false
結果の解説
まず「=」によって x には数値の 5 が代入され、document.write(x) の出力として「5」が表示されます。続いて「==」による比較では、数値の 5 と文字列の "6" を比べているため値が等しくなく、結果は false となります。
注意点:「==」は型を自動的に変換して比較する
「==」演算子は、比較時に左右の型が異なる場合、暗黙的に型変換(型強制)を行ってから比較します。そのため、"5" == 5 のような一見異なる型同士の比較でも true になることがあります。この挙動は意図しないバグの原因になりやすい点に注意が必要です。
より安全で厳密な比較を行いたい場合は、値だけでなくデータ型まで一致しているかを判定する「===」(厳密等価演算子)を使用することが推奨されています。「=」で代入、「===」で比較、という使い分けを習慣づけると、バグの少ない堅牢なコードを書けるようになります。
-
JavaScriptにおける関数とメソッドの違いとは?わかりやすく解説
JavaScriptにおいて、関数とメソッドは本質的には同じものです。両者の違いは、メソッドがオブジェクトのプロパティとして定義された関数であるという点にあります。つまり、独立して定義されたものを「関数」、オブジェクトに紐づけられたものを「メソッド」と呼びます。 JavaScriptの関数の基本形 まず、一般的な関数の定義方法を見てみましょう。 function functionname(param1, param2){ // 処理内容 } JavaScriptのメソッドの例 メソッドは、オブジェクトに関連付けられた関数です。次の例では、employeeオブジェクトの中にdetails
-
JavaとJavaScriptの違いとは?歴史・技術・使い分けを徹底解説
ウェブ開発者のジェレミー・キースは2009年、「JavaとJavaScriptの関係は、ハムとハムスターの関係のようなものだ」と語りました。この比喩がどれほど正確かは議論の余地がありますが、その本質は的確です。共通する言語的ルーツを持つにもかかわらず、JavaとJavaScriptはまったく異なる2つのプログラミング言語なのです。年月とともに両者の重なりも多少増えましたが、今なおJavaScriptはウェブサイトにインタラクティブ性をもたらすフロントエンド言語の主流であり続け、Javaはサーバーサイドやアプリケーション開発で人気を保っています。開発者を採用したい方、プログラミングを学びたい方