javascript数组创建推荐字面量方式;array构造函数单参数为长度易出错;array.of()无歧义;array.from()支持类数组转换和映射;fill()配合new array()可初始化固定长度数组。

JavaScript 数组创建和初始化方式多样,选对方法能避免常见陷阱(比如 new Array(5) 创建的是含 5 个空槽的数组,不是 5 个 undefined),也更利于后续操作。
字面量方式:最常用、最安全
直接用方括号写值,语义清晰、性能好,适合已知元素内容的场景。
-
const arr = [1, 'a', true, null];—— 混合类型无压力 -
const empty = [];—— 创建空数组,推荐用于后续 push 或动态填充 - 不建议写成
const arr = new Array(1, 2, 3);,虽然结果相同,但构造函数存在歧义(见下条)
Array 构造函数:需注意单参数陷阱
传入**一个数字参数**时,它被解释为数组长度,而非数组元素;传入**多个参数或非数字**,才作为元素初始化。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
new Array(3)→[empty × 3](3 个空槽,map不会遍历) -
new Array(1, 2, 3)→[1, 2, 3] -
new Array('3')→['3'](字符串参数视为元素)
Array.of():解决构造函数歧义
无论参数数量或类型如何,一律将所有参数作为数组元素,是构造函数的安全替代。
-
Array.of(3)→[3] -
Array.of(1, 2, 3)→[1, 2, 3] -
Array.of(undefined)→[undefined]
Array.from():从类数组/可迭代对象转换 + 映射初始化
既能转 arguments、NodeList、字符串等,又支持一步生成带计算逻辑的数组。
-
Array.from('abc')→['a', 'b', 'c'] -
Array.from({length: 4}, (_, i) => i * 2)→[0, 2, 4, 6] -
Array.from(document.querySelectorAll('div'))→ 转为真数组以便使用map/filter
fill() 配合 new Array():快速生成固定长度+默认值数组
常用于需要预设长度并统一填充值的场景(如初始化计数器、占位符)。
-
new Array(5).fill(0)→[0, 0, 0, 0, 0] -
Array(3).fill('').map(() => [])→ 创建 3 个独立空子数组(二维数组初始化) - ⚠️ 注意:
fill()是浅填充,若填对象引用,所有项指向同一对象
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










