違いがすぐ分かるように、出来るだけ全てのパターンを列挙しました。 また==や===で判別できない、配列・オブジェクト、NaN、+0、-0についての判別方法も載せました。 Referenceとして掲載しています。 ここに無いパターンがあったら順次付け加えていきます。
比較一覧表
| == 等値演算子 | === 同値演算子(厳密) strict equality switch文は===を使用 |
|---|---|
console.log('3'==3);
//->true
console.log(1==true);
//->true
値だけ比較
異なる型を比較前に変換する | console.log('3'===3)
//->false
console.log(1===true)
//->false
型と値を比較
型が異なるのでfalse |
let a=['a', 'b', 'c']; let b=['a', 'b', 'c']; let c=a; console.log(['a', 'b', 'c']==['a', 'b', 'c']); //->false console.log(a==['a', 'b', 'c']); //->false console.log(a == b ); //->false console.log(a == c); //->true参照先を比較 同じ配列・オブジェクトの時だけtrueを返す | let a=['a', 'b', 'c']; let b=['a', 'b', 'c']; let c=a; console.log(['a', 'b', 'c']===['a', 'b', 'c']); //->false console.log(a===['a', 'b', 'c']); //->false console.log(a===b); //->false console.log(a === c); //->true参照先を比較 同じ配列・オブジェクトの時だけtrueを返す |
(多階層でない時)オブジェクトの値を比較したい時、まずキーでソートして、文字列化して文字列としてで比較する。
let a = {"a":"a","b":"b"};
let b = {"b":"b","a":"a"};
let a_json = JSON.stringify(Object.entries(a).sort());
let b_json = JSON.stringify(Object.entries(b).sort());
console.log(a_json === b_json);
//->true |
|
console.log('3.14e2'==314);
console.log('0x10'==16);
//->true | console.log('3.14e2'===314);
console.log('0x10'===16);
//->false |
let a=1; let b=1; console.log(a==b); //->true | let a=1; let b=1; console.log(a===b); //->true |
let a=null; let b=null; console.log(a==b); //->true let a=undefined; let b=undefined; console.log(a==b); //->true console.log(null==undefined); //->true | let a=null; let b=null; console.log(a===b); //->true let a=undefined; let b=undefined; console.log(a===b); //->true console.log(null==undefined); //->false |
| NaNと+0,-0の判定にはObject.is()を使う | |
console.log(NaN==NaN); //->false console.log(Object.is(NaN, NaN)); //->true | console.log(NaN===NaN); //->false console.log(Object.is(NaN, NaN)); //->true |
console.log(+0==-0); //->true console.log(Object.is(+0,-0)); //->false | console.log(+0===-0); //->true console.log(Object.is(+0,-0)); //->false |
TablePress内のコードをEnglighterJSで表示方法
上の表のセル内のコード表示はEnglighterJSを使っています。 方法はここに掲載しました。


コメント