最近我发现了一个有趣的网站,其中展示了 Javascript 混淆器:http://bl.ocks.org/jasonsperske/5400283 http://bl.ocks.org/jasonsperske/5400283
例如,(([]===[])+/-/)[1]
gives a
and (1+{})[(1<<1)+1]
gives b
.
我曾努力尝试理解这些混淆结果的评估顺序,但徒劳无功。
Taking (1+{})[(1<<1)+1]
举个例子,我明白<<
是按位移位运算符,将返回 2,因此表达式变为(1+{})[3]
。但后来我无法理解这是什么意思1+{}
and [3]
.
谷歌对这个问题并没有真正的帮助,因为搜索引擎不太喜欢括号或斜线,所以如果有重复的问题,我很抱歉。
这只是混淆视听的伎俩。
例如 :
[]===[]
===>false
and
([]===[])+/-/
===>"false/-/"
(你可以自己在控制台测试一下)
那么什么是(([]===[])+/-/)[1]
? (第二个字符)
没错:'a'
You may也想看看这个:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)