您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Web开发 >> 为什么在Javascript中[][+[]]+[][+!![]]表示n

为什么在Javascript中[][+[]]+[][+!![]]表示n

来源:网络整理     时间:2016/6/20 9:27:20     关键词:

关于网友提出的“ 为什么在Javascript中[][+[]]+[][+!![]]表示n”问题疑问,本网通过在网上对“ 为什么在Javascript中[][+[]]+[][+!![]]表示n”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 为什么在Javascript中[][+[]]+[][+!![]]表示n
描述:

console.log(([][+[]]+[])[+!![]])
n //output

为什么这堆符号会输出n


解决方案1:

无义务祭出 @justjavac 大大的神器: http://justjavac.com/javascript/2012/05/24/can-you-explain-why-10.html

另补充一副分解动作图:

 为什么在Javascript中[][+[]]+[][+!![]]表示n

解决方案2:

([][+[]]+[])[+!![]]中先看最后一段[+!![]]
![]false!![]true,前面加上+变成整数,[+!![]]为1。
同理,[+[]]为0,但[][+[]]undefined+[]后仍是undefined
'undefined'[1],得出n。

解决方案3:

拆解一下

> []
[]
> +[]
0
> [][0]
undefined
> [][+[]]
undefined
> undefined+[]
'undefined'
> [][+[]]+[]
'undefined'
> ![]
false
> !![]
true
> +!![]
1
> 'undefined'[1]
'n'
> ([][+[]]+[])[1]
'n'
> ([][+[]]+[])[+!![]]
'n'

推荐你看下这篇文章 jother编码


以上介绍了“ 为什么在Javascript中[][+[]]+[][+!![]]表示n”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1795031.html

相关图片

相关文章