javascript:(ä=#1 = {}&& alert)(ä)

时间:2011-02-24 15:51:08

标签: javascript

在此处找到http://sla.ckers.org/forum/read.php?2,15812,page=2

如果您复制问题的标题并在浏览器中运行,您应该会看到它是警告函数的字符串表示。

function alert() {
    [native code]

}

有人可以慢慢解释发生了什么吗?

1 个答案:

答案 0 :(得分:8)

从先发生的事情开始,然后从那里锻炼

  1. {} && alert - {}为真,因此评估alert并向左推
  2. #1 = alert - 将alert分配给变量#1(从技术上讲,您不能使用#来启动标识符,但有些浏览器显然会让您获得离开它(同上ä))
  3. ä = #1 - 将#1alert)分配给ä
  4. ä(ä) - 以alert为参数调用alert
  5. alert自动调用theFirstArgument.toString(),将函数转换为字符串
  6. 然后获取渲染的字符串