== と === JSでは、2つの値が等しいかどうかを比較します。
- 1.== 等しい
- 1.NaN==NaN =>false NaNはどの値とも等しくありません。
- 2.Infinity==Infinity =>true Infinityはそれ自身と等しく、他の値とは等しくありません。
- Symbol(1) == Symbol(1) =>false
- 4.Object==Objectはメモリアドレスを比較します。
- 5. null == undefined => true nullとundefinedは、2つの等号で比較すると等しいですが、3つの等号で比較すると等しくありません。
- 6. object == string オブジェクトを文字列に変換したもの。
- 7.上記の規則に加えて、残りの値は数値型に変換され、比較されます。
console.log([10] == '10'); //=>'10'=='10' true
console.log({} == '{}'); //=>'[object Object]'=='{}' false
console.log(1 == true); //=>1==1 true
console.log(2 == true); //=>2==1 false
console.log(-1 == false); //=>-1==0 false
console.log(0 == false); //=>0==0 true
console.log(1 == '1'); //=>1==1 true
console.log(true == '1'); //=>1==1 true
console.log(false == ''); //=>0==0 true
console.log([] == 0); //=>0==0 true
console.log(10 == "10"); //=>TRUE デフォルトでは、まず "10 "を変換する。>10,と比較する。
console.log(10 === "10"); //=>FALSE
console.log("10" === "10"); //=>TRUE
isNaN(NaN) == "" 条件が真かどうか
=> isNaN(NaN) =>true
=> true=="" 2つの等号を比較すると、デフォルトでデータ型が変換される
=> 1==0 の条件は無効である。
if (isNaN(NaN) == "") {
console.log("Hello")
} else {
console.log("Hi") //=>"Hi"
}