您的位置:首页 > Web前端 > JavaScript

javascript中数据类型的隐式转换

2017-08-10 13:43 495 查看
(!(~+[])+{})[--[~+""][+[]]*[~+[]]+~~!+[]]+({}+[])[[~!+[]*~+[]]]


一日,在和一位朋友“友好”的就工作问题交流了一波之后,他给我发来了上面的这堆东西。

经控制台输出之后……整个人都懵了,怎么能这么神奇!!!

下面是解码时间



分析:“+”运算符左右为独立部分,所以红线1、2、3为一部分,4、5为另一部分。

逐个部分分析:

1、(!(~+[])+{})



2、–[~+”“][+[]]*[~+[]]



3、~~!+[]



到此左边部分全部解析出: (!(~+[])+{})[–[~+”“][+[]]*[~+[]]+~~!+[]]



4、({}+[])



5、[[~!+[]*~+[]]]



右边部分全部解析出:({}+[])[[~!+[]*~+[]]]



此间的知识点包含数据类型的隐式转换操作符“~”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息