最推荐数组创建方式是字面量[],语义清晰、书写简洁、执行高效;Array构造函数仅适用于预分配空槽数组;Array.of和Array.from用于特定场景,不应替代字面量。

日常开发中,数组创建方式直接影响代码第一眼的可读性和后续维护成本。最推荐的方式是优先使用字面量 [],它语义清晰、书写简洁、执行高效,且被所有现代环境无条件支持。
字面量方式:默认首选,兼顾可读与安全
这是绝大多数场景下的最优解,尤其适合初始化已知内容的数组。
- 直接表达意图:“我要一个包含这些值的数组”,无需额外认知负担
- 支持多行书写,便于维护长列表或结构化数据
- 不会因参数类型歧义引发意外行为(对比
new Array(5)容易误以为是[5]) - 示例:
const users = [
{ id: 1, name: '张三' },
{ id: 2, name: '李四' }
];
Array 构造函数:仅在明确需要“空槽数组”时使用
new Array(n) 的唯一合理用途是创建指定长度但暂无实际元素的稀疏数组(如预分配 canvas 像素缓冲区),但它极易引发误解。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 避免单数字参数写法:
Array(3)→[empty × 3],不是[3] - 若真需含数字元素,显式写出:
Array.of(3)或直接用字面量[3] - 多参数时行为虽等价于字面量,但语法冗余,无额外收益
Array.of 与 Array.from:按需选用,不强行替代字面量
它们解决的是特定问题,不是通用创建语法。
立即学习“Java免费学习笔记(深入)”;
-
Array.of(...items):安全封装单个值,例如Array.of(5)→[5],适合动态构造或封装不确定数量的参数 -
Array.from(iterable):用于转换类数组或可迭代对象(如document.querySelectorAll、字符串、Set),强调“从某物转化而来”的语义 - 二者都不应代替
[1, 2, 3]这类静态初始化——那只会增加阅读噪音
提升可读性的实操细节
数组本身只是容器,真正影响可读性的是它的命名、结构和上下文表达。
- 变量名体现用途:用
activeUsers而非arr1,用configOptions而非list - 复杂数组考虑拆解或类型注解(配合 JSDoc 或 TypeScript)
- 避免嵌套过深:二维以上数组优先考虑对象结构或专用工具函数
- 对空值、undefined 等敏感场景,用
.filter(Boolean)等语义化操作,比手写循环更直观

















