美文网首页
JavaScript (a == 1 && a == 2 &&

JavaScript (a == 1 && a == 2 &&

作者: Wang_Yong | 来源:发表于2018-02-22 15:34 被阅读0次

    自定义 toString(或者 valueOf)方法,每次调用改变一次返回值,从而满足判断条件。

    const a = {
      i: 1,
      toString: function () {
        return a.i++;
      }
    }
    
    if(a == 1 && a == 2 && a == 3) {
      console.log('Hello World!');
    }
    

    当使用 == 时,如果两个参数的类型不一样,那么 JS 会尝试将其中一个的类型转换为和另一个相同。在这里左边对象,右边数字的情况下,会首先尝试调用 valueOf(如果可以调用的话)来将对象转换为数字,如果失败,再调用 toString。

    相关文章

      网友评论

          本文标题:JavaScript (a == 1 && a == 2 &&

          本文链接:https://www.haomeiwen.com/subject/xekztftx.html