小小千想和您聊一聊

当前位置: 首页> 技术分享> web前端教程之JS奇葩语法

web前端教程之JS奇葩语法

在你的浏览器控制台输入这一段代码

([][[]]+[])[+!![]]+([]+{})[!+[]+!![]]

猜猜看会得到什么结果?


要想理解这个结果怎么出来的,需要你对JS各种类型的转换非常熟悉才行。

 

我们试着解析一下这个语法。

上文中的代码分为两部分 xxx + xxx

所以它们分别代表“n”和“b”

我们先看第一个字母

( [] [ [] ] + [] ) [ +!![] ]

转化

( [] [ [].toString() ] + [].toString() ) [ +!![] ]

解析

结果

( [] [ "" ] + "" ) [ +!![] ]

2次转化

( undefined+"" )[ +!![] ]

结果

"undefined"[ +!![] ]

3次转化

"undefined"[ +!!true ]

结果

"undefined"[+true]

再转化

"undefined"[1]

最终结果

"n"

 

然后我们再来看第二个字母

( [] + {} )[ !+[] + !![] ]

转化

( [].toString() + {}.toString() )[ !+[] + !![] ]

结果

(""+"[object Object]")[!+[]+!![]]

结果

"[object Object]"[!+[]+!![]]

转化

"[object Object]"[!+[].toString() + !![].toString() ]

结果

"[object Object]"[!+"" + !!true ]

结果

"[object Object]"[!+"" + true ]

结果

"[object Object]"[!0 + true]

结果

"[object Object]"[true + true]

结果

"[object Object]"[1 + 1]

结果

"b"

上一篇:大数据教程之Ambari和ClouderaManager对比

下一篇:大数据教程之hive存储过程

QQ技术交流群

HTML5/Web前端锋迷群
712051083

加入群聊

用户登录

手机号:

密码:

图形验证码:

点击切换

用户注册

手机号:

登录密码:

图形验证码:

点击切换

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

手机号:

图形验证码:

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

新密码:

确认新密码:

获取课程

添加小千老师微信,获取课程信息

如何获取课程?

一、需拥有此本教材

如没有,可点击下方入口购买当当购买入口京东购买入口

二、添加小千老师,发送拥有凭证,解锁课程资源

1.购买该教材的订单信息
2.拥有的实体书信息等

更换手机号

新手机号:

图形验证码:

短信验证码:

获取验证码