【JavaScript】相等运算符(== 和 ===)

如果x和y的类型相同,JavaScript会用equals 方法比较这两个值或对象。

【JavaScript】相等运算符(== 和 ===)_第1张图片

没有出现在表格中的情况都会返回 false。(表格中的方法都是内部规定的)

对于 toNumber 方法:

【JavaScript】相等运算符(== 和 ===)_第2张图片

对于 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。如果类型相同,结果会根据下表判断。

【JavaScript】相等运算符(== 和 ===)_第3张图片

// 举个例子:
let person1 = {name:'jjb')
let person2 = {name:'jjb')
console.log(person1 === person2) // false,不同的对象,地址不同

你可能感兴趣的:(JavaScript,javascript,开发语言,ecmascript)