Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
此javascript代码如何/为什么打印';好玩吗;?_Javascript - Fatal编程技术网

此javascript代码如何/为什么打印';好玩吗;?

此javascript代码如何/为什么打印';好玩吗;?,javascript,Javascript,这是小提琴: 这段神秘的代码到底是如何工作的 alert( (![]+[])[[]-[]]+ (([]+[])+([][[]]))[[]-[]]+ (([]+[])+([][[]]))[!![]-[]] ); 因此,您得到了“f”+“u”+“n”==“fun” 进一步解释 “false” ![]为假+[]只是充当到字符串的转换。因此,我们获得字符串“false” “未定义” 其中一个操作数必须是字符串。这是由[]+[]完成的。实际的未定义在右侧创建:[[[]]===[[

这是小提琴:

这段神秘的代码到底是如何工作的

alert(
    (![]+[])[[]-[]]+
    (([]+[])+([][[]]))[[]-[]]+
    (([]+[])+([][[]]))[!![]-[]]
);
因此,您得到了
“f”+“u”+“n”==“fun”

进一步解释
“false”
![]
<代码>+[]
只是充当到字符串的转换。因此,我们获得字符串
“false”

“未定义”

其中一个操作数必须是字符串。这是由
[]+[]
完成的。实际的
未定义
在右侧创建:
[[[]]
===
[[][0]
,空数组的第一个条目是
未定义

,因为字符串可以索引。请在控制台中将其分解。太棒了;为什么这会增加选票?如果你看不懂,你所需要做的就是一次试一小块。这有点令人沮丧。这些工作也是这样:,。作为旁注,
([[]+[]])+([[][]])
对我来说似乎有些过火,
([]+[[]])
似乎就足够了。@Neil:还有其他过火:
[[]-[]==[+[]]]
。我相信
(![]+[])[+[]]+([]+[[]]])[+[]]+([]+[[]])[+!![]]
是产生相同结果的最短序列。
        vvvvvvv [0]
(![]+[])[[]-[]]                            = "false"[0]
^^^^^^^^ "false"

                  vvvvvvv again [0]
(([]+[])+([][[]]))[[]-[]]                  = "undefined"[0]
^^^^^^^^^^^^^^^^^^ "undefined"

                  vvvvvvvvv this time [1]
(([]+[])+([][[]]))[!![]-[]]                = "undefined"[1]
^^^^^^^^^^^^^^^^^^ again "undefined"