0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Javascript] 比較演算子(===)を簡単にまとめる

Posted at

===と==の違いがうろ覚えだったので、このちがいを復習。

1.==は「等価」を確認

==は「等価演算子」を表しており、2つの値が等しいかどうかを検証する。

const a = 1
const b = 1
const c = 2
const d = "1"

console.log(a == b) //true
console.log(a == c) //false
console.log(a == d ) //true

==は「値」が同じかをみます。
aとdを比べる際は、文字列を数字に置き換えるため、同じとみなされます。

2.===は「厳密」に確認

===は「厳密等価演算子」であり、2つの値に加えて、***2つの値の「データの型」***まで比較する。

const a = 1 //数字
const b = "1" //文字列

console.log(a == b) //true
console.log(a === b) //false

==の等価演算子であれば、文字列を数値に変換し「変数の値だけを比較する」ためTRUEが返る。

一方で、===の厳密等価演算子は、文字列を数値に変換することなく、それぞれの変数の「データの値と型が一致しているか」を比較する。そのために、数字と文字列をでちがうaとbはfalseになる。

Booleanは??

==を使う際にはtrueは1に、falseは0に変換されます。 ===を使う際は型も確認するため、true/false以外のものと比べると必ずfalseになります。
console.log(true == 1) //true trueは1に変換される
console.log(true === 1) //false 型も見ているため違うものとみなされる
console.log(false== 0) //true falseは0に変換される
console.log(false === 0) //false 型も見ているため違うものとみなされる

Objectは??

console.log("test" == new String("test")) //true 
console.log("test" === new String("test")) //false 

プリミティブ型とString型の比較。
==では、String型がプリミティブ型に変換され、trueになる。

console.log(new String("test") == new String("test")) //false 

上記は異なるオブジェクトの比較になるので、false

3.!=は(1)等価演算子の逆

!=は「不等価」と呼び、1の等価演算子(==)の反対
2つの「値」を確認して等しくない場合にtrueが返る。

const a = 1 
const b = 2

console.log(a != b) //true


4.!==は(2)厳密等価の逆

!==は「厳密不等価演算子」と呼び、2の厳密等価演算子(===)の反対の結果を返します。

const a = 1 //数字
const b = "1" //文字列

console.log(a != b) //false 値が一緒なので同じものとみなされてfalseとなる。
console.log(a !== b) //true 型も確認するため、違うものとみなされtrueが返る。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?