如何让下面条件判断为真
题目代码如下:
js
let a = //待补充
if (a == 1 && a == 2 && a == 3) {
console.log('success')
}
答案:
js
let a = {
count: 1,
valueOf() {
return this.count++
}
}
if (a == 1 && a == 2 && a == 3) {
console.log('success')
}
JS红皮书第71页,介绍了“等于和不等于”,==
和!=
这两个操作符会先进行类型转换(通常称为强制类型转换)再确定操作数是否相等。
其中一条转换规则如下:
- 如果一个操作数是对象,另一个操作数不是,则调用对象的
valueOf()
方法获得其原始值,再根据其他规则进行对比。
而===
全等和!==
不全等操作符并不会进行类型转换。