这是什么+[]+!+[]在javascript中?

这是什么+[]+!+[]在javascript中?,javascript,Javascript,您好,我正在阅读一篇文章,在javascript return 2中的以下代码中发现了非常奇怪的结果 !+[]+!+[] 请任何人解释一下。将表达式分解为正确的操作顺序,您有: (!(+[])) + (!(+[])) 首先,[]被+强制转换为一个数字,结果为0。不要问我为什么,它只是:p可能埋在规范的某个地方 !!0完全正确 因此,最终的结果是true+true,它再次转换为数字,结果是1+1=2 要获得九次,您需要重复九次: !+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+

您好,我正在阅读一篇文章,在javascript return 2中的以下代码中发现了非常奇怪的结果

!+[]+!+[]

请任何人解释一下。

将表达式分解为正确的操作顺序,您有:

(!(+[])) + (!(+[]))
首先,[]被+强制转换为一个数字,结果为0。不要问我为什么,它只是:p可能埋在规范的某个地方

!!0完全正确

因此,最终的结果是true+true,它再次转换为数字,结果是1+1=2

要获得九次,您需要重复九次:

!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[]+!+[] == 9

实际上,它返回2:我自己得到2。因为由+转换为数字的空数组是零!0为真,将强制转换为1。1+1=2.Ug,不是其中的另一个。有人对JavaScript类型转换有很好的了解吗?所有这些都可以作为副本关闭的参考问题?在什么情况下它为您返回了9?你是怎么测试的?你在读什么文章?@j08691没关系,我数不清XD