<分区>
new Array(n) 生成一个空数组。例如new Array(5)
生成[empty × 5]
[...new Array(n)]
生成一个未定义数字的数组。例如[...new Array(5)]
生成 [undefined, undefined, undefined, undefined, undefined]
流程的哪一部分将空值转换为未定义的值?
标签 javascript
<分区>
new Array(n) 生成一个空数组。例如new Array(5)
生成[empty × 5]
[...new Array(n)]
生成一个未定义数字的数组。例如[...new Array(5)]
生成 [undefined, undefined, undefined, undefined, undefined]
流程的哪一部分将空值转换为未定义的值?
最佳答案
Spread Operator 创建一个相同长度的新数组,复制源数组中的所有元素。
for (let i = 0; i < source.length; i++)
destination[i] = source[i] // Which is evaluated to `undefined`
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax
这里要做的一件有趣的事情是检查转译器将做什么:
Babel 和 TypeScript 都转译为在源数组上迭代的相同循环,因此传递每个 undefined
值。
关于javascript - new Array(n) 创建空数组; [...new Array(n)] 创建未定义的数组。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58052913/