可以(a == 1 && a == 2 && a == 3)评估为真?
版主注意:请拒绝编辑代码或删除此通知的冲动。 空白的格式可能是问题的一部分,因此不应该被不必要地篡改。 如果你在“空白无足轻重”的阵营中,你应该可以接受现在的代码。
是否有可能(a== 1 && a ==2 && a==3)
在JavaScript中可以评估为true
?
这是一家大型科技公司提出的面试问题。 它发生在两周前,但我仍然试图找到答案。 我知道我们从不在日常工作中编写这样的代码,但我很好奇。
如果您充分利用==
工作原理,可以简单地使用自定义的toString
(或valueOf
)函数创建一个对象,该对象每次使用时都会改变其返回的内容,以满足所有三个条件。
const a = {
i: 1,
toString: function () {
return a.i++;
}
}
if(a == 1 && a == 2 && a == 3) {
console.log('Hello World!');
}
我无法抗拒 - 其他答案无疑是真实的,但你真的不能走过以下代码:
var aᅠ = 1;
var a = 2;
var ᅠa = 3;
if(aᅠ==1 && a== 2 &&ᅠa==3) {
console.log("Why hello there!")
}
有可能的!
var i = 0;
with({
get a() {
return ++i;
}
}) {
if (a == 1 && a == 2 && a == 3)
console.log("wohoo");
}
链接地址: http://www.djcxy.com/p/8439.html