Array.of()是ES6引入的静态方法,用于将任意数量参数原样转为新数组,避免Array()构造函数对单个数字参数误判为数组长度的歧义;如Array(3)生成长度为3的空数组,而Array.of(3)返回[3]。

Array.of 是 JavaScript 中用于**将任意数量的参数直接转为新数组**的静态方法,它不区分参数个数或类型,也不会像 Array() 构造函数那样对单个数字参数产生歧义。
为什么不用 Array()?
传统 Array(3) 会创建一个长度为 3 的空数组([empty × 3]),而 Array.of(3) 明确返回 [3]。这种设计避免了构造函数在单参数时的“长度陷阱”。
基本用法:传什么,就装什么
所有传入的参数,无论类型、数量、是否为 undefined 或 null,都会成为新数组的元素:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
-
Array.of(1, 2, 3)→[1, 2, 3] -
Array.of('a', null, undefined, {x: 1})→['a', null, undefined, {x: 1}] -
Array.of()→[](空数组) -
Array.of(0)→[0](不是长度为 0 的数组)
和 Array.from 的区别
Array.of 只是“原样打包”参数;Array.from 则用于从类数组或可迭代对象(如字符串、Set、arguments)中构建新数组,并支持映射处理:
立即学习“Java免费学习笔记(深入)”;
-
Array.of('a', 'b')→['a', 'b'] -
Array.from('ab')→['a', 'b'](按字符拆分) -
Array.from([1,2], x => x * 2)→[2, 4](带映射)
实际使用建议
当你需要可靠地把一组离散值转成数组(尤其在函数参数转发、配置组装、兜底默认值等场景),Array.of 是简洁安全的选择:
- 封装多参数 API 返回值:
return Array.of(...args) - 避免
new Array(...)的意外行为 - 比
[...args]更明确(尤其在未启用展开语法的环境)

















