==
)會進行型別轉換後,再對值進行比較
===
)會比較型別和值是否相同,因此不會有型別轉換發生
範例:
字串、布林會被轉型為數值後,才進行比較,
我們可以使用 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() 查看
以上就是今天的內容,感謝觀看!!