LoginSignup
3
0

More than 5 years have passed since last update.

Javascriptで等価演算子を使う時の注意

Last updated at Posted at 2018-06-02

JavaScriptの基本型と参照型の違いについてちょっと面白かったのでメモ。

JavaScriptの主なデータ型

分類 データ
基本型 数値型(number)
基本型 文字列型(string)
基本型 真偽型(boolean)
基本型 シンボル型(symbol)
基本型 特殊型(null/undefined)
参照型 配列(array)
参照型 オブジェクト(object)
参照型 関数(function)

基本型と参照型の違い

両者の違いは、「値を変数に格納する方法」
基本型の変数には値そのものが直接格納される。
参照型の変数はその参照値(値を実際に格納しているメモリ上のアドレス)を格納する。

等価演算子を使う時の注意

等価演算子は左辺と右辺の値が等しい場合はtrueを返す。

基本型の比較を行う場合

左辺と右辺の型が同じで、文字列や数値、論理値の比較の場合は単純に双方の値が等しいかが比較される。


console.log(1 == 1); // true

しかし、左辺と右辺の型が違う場合は型を数値に変換した上で判定を行う

#文字列の'1'が数値の1に変換されてから比較されるのでtrue
console.log(1 == '1'); // true
#論理値のtrueが数値の1に変換されてから比較されるのでtrue
console.log(1 == true); // true

参照型の比較を行う場合

参照型の比較はその参照値(メモリ上のアドレス)が等しいかが比較される。

#配列は参照型でありdata1の参照値とdata2の参照値は別(data1とdata2が指すメモリ上のアドレスが違う)なのでfalse
var data1 = ['apple', 'orange', 'banana'];
var data2 = ['apple', 'orange', 'banana']:
console.log(data1 == data2); // false
3
0
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
3
0