题目 声明变量a,让下面表达式结果为true。 a == 1 && a == 2 && a == 3 // true 解答 let a = { i: 1, valueOf () { return this.i++ } } 分析 注意到题目中用到的判断是“双等”,JS在做此类比较并且两边数据类型不一致时候会进行隐式转换。而对象在做隐式转换会调用valueOf方法,而valueOf不存在则会调用toString。 JS逻辑运算从左至右依次判断。