== 兩邊數(shù)據(jù)類型不同,要先轉(zhuǎn)換為相同類型,然后再進行比較
@1 對象==字符串,將對象轉(zhuǎn)為字符串(String([val]))有三步驟,具體看之前的筆記
@2 null == undefined -> true ?? null === undefined -> false ?? null/undefined和其他任何值不相等
@3 對象==對象,比較是地址值
@4 NaN !== NaN ?? Object.is(NaN, NaN) -> true
@5 除了以上情況,都是轉(zhuǎn)為數(shù)字進行比較的
=== 絕對相等,如果類型不同,直接false,工作中使用這種
// 要轉(zhuǎn)為數(shù)字比較,用Number([]) -> 0 Number(false) -> 0
console.log([] == false) // true
// 先處理![],因為只有0/NaN/null/undefined/空字符串為false,所以![]為false
console.log(![] == false) // true
console.log(typeof undefined == typeof null) // false
// 這里NULL是未定義的變量,typeof NULL -> 'undefined'
console.log(typeof undefined == typeof NULL) // true
// 'function' == 'function'
console.log(typeof function () {} == typeof class {}) // true