javascript - new Array(n) 创建空数组; [...new Array(n)] 创建未定义的数组。为什么?

标签 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/

相关文章:

javascript - 谷歌地图 API : force map to do not handle click inside infobox

JAVASCRIPT 验证表单中的日期

php - Ajax post数据用php采集数据

javascript - 通过JS点击所有按钮

javascript - 如何在 Select2 中先设置占位符

javascript - 有什么方法可以在 jssor slider 中为图像添加框阴影?

javascript - 我如何在 React 中使用单选按钮?

javascript - 为div链接制作nofollow行为

javascript - 在JavaScript中使用“原型(prototype)”还是“this”?

javascript - 使用 Javascript 更改 CSS 但使用变量