为什么这个JavaScript无意义的警报“失败”?

时间:2014-06-19 00:05:07

标签: javascript syntax

我意识到这是一个笑话,但是有人发布了这个并且警告"失败"在浏览器中,这是怎么回事?

alert((![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]);

1 个答案:

答案 0 :(得分:1)

以下是关于此主题的好文章:http://patriciopalladino.com/blog/2012/08/09/non-alphanumeric-javascript.html

你基本上创建了字符串(“假”,“未定义”和其他),并再次使用true来获取索引。

例如第一个字母(f): (![]+[])[+[]] 您使用![]获取false,并添加[]将其转换为字符串。括号内的内容现在是“假”。然后,您可以像数组一样访问它,'+ []`转换为0(false作为数字)。