等号运算符的运算和转换规则
Code
ts
// 如何让下面等式成立
if (a == 1 && a == 2 && a == 3) {
console.log('不可能的等式成立了')
}
解析
ts
/**
* 双等比较
* 1. 有NAN返回false
* 2. undefined 和 null 是相等的, 其他false
* 3. 两端类型相同比较值
* 4. 两端都是原始类型转换成数字比较
* 5. 一端是原始类型,一端是对象,对象转原始类型
* 5.1 toPrimitive
* 5.2 valueOf
* 5.3 toString
*/
var a = {
i: 1,
valueOf: function() {
return this.i++;
}
}