== )會進行型別轉換後,再對值進行比較
=== )會比較型別和值是否相同,因此不會有型別轉換發生
範例:
字串、布林會被轉型為數值後,才進行比較,
我們可以使用 Number() 查看轉型後的值
// 1、'1'
console.log(Number('1'));  // 1
console.log(1 == '1');  // true
console.log(1 === '1');  // false
// true、1
console.log(Number(true));  // 1
console.log(true == 1);  // true
console.log(true === 1);  // false
// true、'true'
console.log(Number(true));  // 1
console.log(Number('true'));  // NaN 
console.log(true == 'true');  // false
// '1'、!0
console.log(!0);  // true
console.log(Number(!0));  // 1
console.log('1' == !0);  // true
// NaN、NaN
console.log(NaN == NaN);  // false
// null、undefined 不會被轉為數值進行比較
console.log(Number(null));  // 0
console.log(Number(undefined));  // NaN
console.log(null == undefined);  // true
console.log(null === undefined);  // false
物件和非物件的比較,會使用包裹物件進行轉型之後,才進行比較
// 100、[100]
console.log(Number([100]));  // 100
console.log(100 == [100]);  // true
// 'a'、['a']
console.log(String(['a']));  // 'a'
console.log('a' == ['a']);  // true
// {a: 'a'}、'[object Object]'
console.log(String({a: 'a'}));  // '[object Object]'
console.log({a: 'a'} == '[object Object]');  // true
物件與物件比較是依據參考位置來決定的,
也就是根據記憶體位址是否相同來進行比較
// {}、{}
console.log({} == {});  // false
// []、[]
console.log([] == []);  // false
物件和物件比較也是有回傳 true 的時候
let a = ['weiwei'];
let b = a;  // 此時 b 和 a 指向相同記憶體位址
console.log(a == b);  // true
console.log(a === b);  // true
圖解:

其他更多物件的比較我們等到開始講解物件時,再進行說明
如果想了解更多關於寬鬆相等和嚴格相等的回傳結果能到 JS Comparison Table 或 Oh My Dear JavaScript 查看
Truthy 與 Falsy 主要是在 if 判斷式內比對是否為 true 或 false,
假值(Falsy)包含 false、0、""、null、undefined 和 NaN,
轉型成布林值為 false
假值以外全都是真值,主要是用來判斷轉型成布林值時,
值是否為 true,相關說明可到 MDN 參考文件 查看
// ''
// 回傳結果 '執行 else'
console.log(Boolean(''));  // false
if ('') {
    console.log('執行 if');
} else {
    console.log('執行 else');
}
// ' ',字串中加空格
// 回傳結果 '執行 if'
console.log(Boolean(' '));  // true
if (' ') {
    console.log('執行 if');
} else {
    console.log('執行 else');
}
// undefined
// 回傳結果 '執行 else'
console.log(Boolean(undefined));  // false
if (undefined) {
    console.log('執行 if');
} else {
    console.log('執行 else');
}
如果要查詢值為真值(Truthy)或假值(Falsy)時,可到 JS Comparison Table 中的 if() 查看
以上就是今天的內容,感謝觀看!!