如果x和y的类型相同,JavaScript会用equals 方法比较这两个值或对象。
没有出现在表格中的情况都会返回 false。(表格中的方法都是内部规定的)
对于 toNumber 方法:
对于 toPrimitive 方法:
// 举个例子:
console.log('aaa' ? true :false) // true(字符串长度大于1)
console.log('aaa' == true) // false
第二行代码之所以为 false,就是因为 true 先转化为数 1,因此开始比较 'aaa' == 1
;然后 ‘aaa’ 转化为数字,变为 Nan,最终变为 Nan == 1
的比较。所以结果就是 false。
同理 console.log('aaa' == false)
的结果也是 false。
然后我们来说说 ===
,如果两个值类型不同,结果就是 false。如果类型相同,结果会根据下表判断。
// 举个例子:
let person1 = {name:'jjb')
let person2 = {name:'jjb')
console.log(person1 === person2) // false,不同的对象,地址不同