ps:今天看到这个有趣的问题,跟大家分享下

一个有趣的问题:

在 JavaScript 中, (a ==1 && a== 2 && a==3) 是否有可能为 true ?

这个问题是一个小伙伴在面试时被问到,我想了很久。测试了下,然后偷偷去看了个答案,原来还不止一种方式为 true。

大家是否觉得有趣呢?有趣就往下看咯。

解法一:

利用松散相等运算符 == 的工作原理,你可以简单地创建一个带有自定义toString( 或者 valueOf)函数的对象,在每一次使用它时候改变它所的返回值,使其满足所有三个条件。

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

相关文章:

  • 2021-10-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-29
  • 2021-10-22
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-13
  • 2018-01-22
  • 2022-12-23
  • 2021-11-11
相关资源
相似解决方案