【发布时间】:2014-08-25 08:01:37
【问题描述】:
最近我遇到了一个有趣的网站,它展示了一个 Javascript 混淆器:http://bl.ocks.org/jasonsperske/5400283
例如,(([]===[])+/-/)[1] 给出a,(1+{})[(1<<1)+1] 给出b。
我努力去理解这些混淆结果的求值顺序,但徒劳无功。
以(1+{})[(1<<1)+1]为例,我理解<<是移位运算符,会返回2,所以表达式变成(1+{})[3]。但后来我无法理解1+{} 和[3] 是什么意思。
Google 对这个问题并没有真正的帮助,因为搜索引擎不太喜欢括号或斜线,所以如果有重复的问题,我很抱歉。
【问题讨论】:
-
表达式结果被字符串化,索引用作字符串的charAt函数。
标签: javascript