LoginSignup
0
1

More than 3 years have passed since last update.

Javascript における「==」と「===」の違い

Last updated at Posted at 2020-05-23

Javascript における「==」と「===」の違い

どちらも「左辺と右辺が等しいか?」を比較するのですが、決定的な違いは**データ型を比較するかしないかの違いです。

「==」

値のみでデータ型は比較しない。

(厳密には異なり、詳細は後述にて補足致します。)

「===」

型と値を比較します。

sample.js

   var num = 123;
   var str = '123';

   document.write(num == str);  // true
   document.write(num === str); // false

「数値型の123」と「文字列型の123」を比較した場合、データ型まで比較を行う「===」はfalse、行わない「==」はtrueとなります。
比較において「==」と「===」のどちらかを使うべきですが、基本的には「===」を使います。
その理由として
型の比較を行わない「==」はバグの原因になりやすいなど理由は多々あるようです。
ですから変数の型を意識する意味を含めて、「===」を使ってプログラムを書いく方が良さそうです。

「==」についての補足です。

前述で「==」は型の比較をしないと言いましたが、厳密に言うと
「型を特定の決まった方に合わせるように変換し、そのあと比較する。」
というニュアンスが正しいです。

例えば文字列型と数値型を「==」で比較した場合は、数値型を文字列型に自動で変換した後に、比較を行います。これはjavascriptで定義されている一定の法則で行われています。

型の自動変換表

  演算   変換
文字列と数値 文字列に変換
数値と論理 数値に変換
文字列と論理 文字列に変換
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1