提问者:小点点

(a==1&&a==2&&a==3)能计算为真吗?


主持人注:请抵制编辑代码或删除此通知的冲动。空格的模式可能是问题的一部分,因此不应进行不必要的篡改。如果你处于“空白无足轻重”的阵营,你应该能够接受代码的原样。

在JavaScript中有可能计算为吗?

这是一家大型科技公司的面试问题。事情发生在两周前,但我仍在努力寻找答案。我知道我们在日常工作中从来不会写这样的代码,但我很好奇。


共3个答案

匿名用户

如果您利用的工作方式,您可以简单地创建一个带有自定义(或)函数的对象,该函数在每次使用时更改它返回的内容,使它满足所有三个条件。

null

const a = {
  i: 1,
  toString: function () {
    return a.i++;
  }
}

if(a == 1 && a == 2 && a == 3) {
  console.log('Hello World!');
}

匿名用户

我无法抗拒--其他答案无疑都是正确的,但你真的无法走过下面的代码:

null

var aᅠ = 1;
var a = 2;
var ᅠa = 3;
if(aᅠ==1 && a== 2 &&ᅠa==3) {
    console.log("Why hello there!")
}

匿名用户

有可能!

null

var i = 0;

with({
  get a() {
    return ++i;
  }
}) {
  if (a == 1 && a == 2 && a == 3)
    console.log("wohoo");
}