您好我正在阅读一篇文章,发现javascript返回2中的以下代码非常奇怪。
!+[]+!+[]
任何人都可以解释一下。
答案 0 :(得分:6)
将表达式分解为正确的操作顺序,您有:
(!(+[])) + (!(+[]))
首先,[]
被+
投射到一个数字,结果为0
。不要问我为什么,它只是这样:p可能埋在规范的某个地方。
!0
只是true
所以你最终得到true + true
,再次投射到数字,导致1 + 1 = 2
要获得9分,你需要重复9次:
!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[] == 9