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
另补充一副分解动作图:
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答870 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
拆解一下
推荐你看下这篇文章 jother编码