如何让a == 1 && a == 2 && a == 3结果为true?

版权声明:欢迎转载,转载请注明出处。 https://blog.csdn.net/SSonamu/article/details/85014776

题目

声明变量a,让下面表达式结果为true。

a == 1 && a == 2 && a == 3 // true

解答

let a = {
  i: 1,
  valueOf () {
    return this.i++
  }
}

分析

注意到题目中用到的判断是“双等”,JS在做此类比较并且两边数据类型不一致时候会进行隐式转换。而对象在做隐式转换会调用valueOf方法,而valueOf不存在则会调用toString

JS逻辑运算从左至右依次判断。

猜你喜欢

转载自blog.csdn.net/SSonamu/article/details/85014776