数组字面量[]是JavaScript中最自然、安全、常用的初始化方式,适用于绝大多数场景;它语义清晰、行为稳定、支持混合类型和嵌套结构,且避免稀疏数组问题,覆盖95%以上需求。
数组字面量 [] 是 JavaScript 中最自然、最安全、也最常用的数组初始化方式,适用于绝大多数日常开发场景。它的行为稳定、语义清晰,不会因参数类型或数量变化而产生歧义。
当你明确知道要存哪些值时,直接用方括号列举是最直观的选择:
['apple', 'banana', 'cherry'] —— 字符串列表[1, 2, 3, 4, 5] —— 数字序列[null, undefined, true, {}, []] —— 混合类型,含义一目了然所有元素都会被原样放入数组,索引连续,没有空槽(sparse holes),后续遍历、map、filter 等操作都可预期。
声明一个待填充的空容器,[] 比 new Array() 更简洁且无副作用:
立即学习“Java免费学习笔记(深入)”;
const list = []; —— 明确表示“暂无内容,后续 push 或赋值”list.push('item'); 或 list[0] = 'first'; 都能正常工作new Array() 可能触发的引擎内部优化路径差异或旧环境兼容性问题虽然 new Array(5) 能创建长度为 5 的空数组,但它生成的是稀疏数组(所有索引位置未定义),forEach、map 等方法会跳过这些空位,容易引发逻辑错误。
更安全的替代方案是:
Array.from({ length: 5 }, () => 0) —— 创建含 5 个 0 的密集数组new Array(5).fill(null) —— 显式填充默认值,语义明确[...Array(5)].map(() => Math.random()) —— 利用扩展运算符转为密集结构这些写法都以字面量或现代 API 为基础,比裸用 new Array(n) 更可控。
构建树形、表格、坐标等结构时,嵌套字面量语法简洁且可读性强:
[[1, 2], [3, 4], [5, 6]] —— 二维数组[{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}] —— 对象数组[[], {}, null, 42] —— 混合嵌套,无需额外构造逻辑而用 new Array() 实现类似结构需多次调用或手动赋值,既冗长又易错。
字面量不是万能的,但它覆盖了 95% 以上的数组初始化需求。真正需要构造函数的场景极少,比如底层库中需精确控制内存布局或与 TypedArray 交互时才可能考虑。对大多数前端开发者来说,坚持用 [] 就够了。