甚至有可能尊重这个条件是js吗?

Mat*_*phe 0 javascript

我必须创建一个变量 x 来传递 js 中的条件。

if ((x==true)&&(x==false)&&(x==42)&&(x!=x)) {
  console.log("[secret_flag]"); 
} else {
  console.log("Nope");
}
Run Code Online (Sandbox Code Playgroud)

Kei*_*ith 5

好的,..

这显然是给你的一个诡计问题。

大多数人忘记的是,当你看到类似 -if (x == true)等的东西时,它x可以代表 2 个东西,一个变量 x,但 is 也可以代表一个全局 x,在浏览器的情况下就是 window.x 。

Nowwindow是一个对象,这意味着我们可以像任何其他对象一样附加属性 getter。

所以下面是一个例子,它基本上在窗口上创建一个属性 x 每次调用它都会改变,这允许我们获得我们的秘密:)

var a = [true, false, 42, 'x', 'y']; //our values

Object.defineProperty(
  window, 'x', 
  {get: () => a.shift()}); 
  
  
//now lets test.. do we get the secret flag?  
if ((x==true)&&(x==false)&&(x==42)&&(x!=x)) {
  console.log("[secret_flag]"); 
} else {
  console.log("Nope");
}
Run Code Online (Sandbox Code Playgroud)