x_ = _ = _y = love = null, _x = "x", _y = "y";
console.log(Infinity in window & !!0 == !!!1 & +~~_ + "" === _ ? _ + _x : _ + _y);
其中输出为nully
。输出应为"值x" (其中value是love
的值)。
Ps。:您只能在声明处更改love
的值,不能更改其他内容。再一次:您可以给love
任何值,但输出必须包含" x"最后,在love
的价值之后。
修改 宣言中有一个错误的问题,已修复。
答案 0 :(得分:1)
以下内容:
Infinity in window & !!0 == !!!1 & +~~_ + "" === _ ? _ + _x : _ + _y
您可以将括号括起来:
(Infinity in window & !!0 == !!!1 & +~~_ + "") === (_) (? _ + _x) : (_ + _y)
“窗口中的无限”是真的,!! 0是假的,!!! 1是假的,~~ _是0(这个,我不知道为什么)。所以左操作数给出:
true & false == false & +0 + ""
这给出了0.这并不严格等于null(_),所以:?运算符返回_ + _ y。操作(null +“y”)返回一个字符串,其中null被转换为“null”,因此你得到“nully”。