console.log(([][+[]]+[])[+!![]])
n //output
为什么这堆符号会输出n
console.log(([][+[]]+[])[+!![]])
n //output
为什么这堆符号会输出n
([][+[]]+[])[+!![]]
中先看最后一段[+!![]]
![]
为false,!![]
为true,前面加上+变成整数,[+!![]]
为1。
同理,[+[]]
为0,但[][+[]]
是undefined,+[]
后仍是undefined。'undefined'[1]
,得出n。
无义务祭出 @justjavac 大大的神器: http://justjavac.com/javascript/2012/05/24/can-you-explain-why-10.html
另补充一副分解动作图:
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
拆解一下
推荐你看下这篇文章 jother编码