代码的输出:
const arr = [1, 2, 3, 4, 5];
console.log([...arr + []]);
给出
[ '1', ',', '2', ',', '3', ',', '4', ',', '5' ]
我知道 ...arr
会返回数组项(如 1 2 3 4 5),而 number + []
给出字符串,但我真的很困惑为什么,
已添加到输出数组中。
是不是因为console.log()
中的...arr
结果是 [..."1, 2, 3, 4, 5"+ []]
其中输出是相同的?
或者是我不知道的一些神奇的解释?
最佳答案
Here是对应用于数组的 +
运算符的解释。那么发生的事情是这样的:
arr + []
为您提供一个字符串"1,2,3,4,5"
- 然后将该字符串扩展/拆分(使用扩展语法)到该字符串的字符数组中。
关于javascript - JS 数组解构 - 它是如何给出这个输出的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53881150/