==
)会进行型别转换後,再对值进行比较
===
)会比较型别和值是否相同,因此不会有型别转换发生
范例:
字串、布林会被转型为数值後,才进行比较,
我们可以使用 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() 查看
以上就是今天的内容,感谢观看!!
今天来学最常用到也最实用的Button按钮元件 我们经常需要点击按钮来做某个或多个事件 这时就需要设...
接续前篇,一般爬虫时抓出的资料量多还没什麽关系,但这次我们是想要让使用者在 line 上使用,一次给...
前言 大家好,目前我学过C、java、lua等语言,但在android设计上还只能算是一名初学者,因...
Lazy loading 是广为人知的网页优化技巧,尤其应用在图片上时能够大幅减少效能和流量的浪费,...
回顾 socket.io 的基本应用的已经告一小段落,因为自己实在不爱打原理论述的内容,所以到目前为...