(!(~+[])+{})[--[~+""][+[]]*[~+[]]+~~!+[]]+({}+[])[[~!+[]*~+[]]]
一日,在和一位朋友“友好”的就工作问题交流了一波之后,他给我发来了上面的这堆东西。
经控制台输出之后……整个人都懵了,怎么能这么神奇!!!
下面是解码时间
分析:“+”运算符左右为独立部分,所以红线1、2、3为一部分,4、5为另一部分。
逐个部分分析:
1、(!(~+[])+{})
2、–[~+”“][+[]]*[~+[]]
3、~~!+[]
到此左边部分全部解析出: (!(~+[])+{})[–[~+”“][+[]]*[~+[]]+~~!+[]]
4、({}+[])
5、[[~!+[]*~+[]]]
右边部分全部解析出:({}+[])[[~!+[]*~+[]]]
此间的知识点包含数据类型的隐式转换和操作符“~”