Array.of() 是 ES6 新增的静态方法,用于将所有参数无歧义地转为数组元素:Array.of(5)→[5],而非 new Array(5) 的 [empty × 5];它语义统一、适用于动态参数场景,且区别于 Array.from(后者用于类数组/可迭代对象转换)。

Array.of() 是 ES6 为解决传统 Array() 构造函数行为不一致而新增的静态方法。它能直接、明确地把所有传入参数当作数组元素,不管是一个数、多个值,还是混合类型,都不会被误认为是“设置长度”。
为什么不用 new Array()?
传统方式容易踩坑:
-
new Array(5)→ 创建长度为 5 的空数组[empty × 5],不是[5] -
new Array(1, 2, 3)→ 正确生成[1, 2, 3] - 参数类型或个数一变,行为就不同,动态场景下极易出错
Array.of() 的基本用法
语法简单:直接传入你要的元素,多少个、什么类型都行,结果就是“所见即所得”的数组。
用于 inference.sh 的 JavaScript/TypeScript SDK,可运行 AI 应用、构建代理、集成 150+ 模型。包名:@inferencesh/sdk(npm install),完整 TypeScript 支持。
-
Array.of(5)→[5] -
Array.of('a', 2, true)→['a', 2, true] -
Array.of()→ 空数组[] -
Array.of(undefined)→[undefined](注意不是空位)
适合哪些实际场景?
特别适合参数不确定、需统一处理的逻辑:
- 封装工具函数时接收不定数量的值:
function makeArr(...args) { return Array.of(...args); } - 从函数返回值、配置项、用户输入中快速构造成数组,避免手动判断是否要包装成单元素数组
- 替代
Array()在多数新建数组的场合,更安全、语义更清晰
和 Array.from() 的区别
Array.of() 是“把参数变成数组”,Array.from() 是“把类数组或可迭代对象转成数组”。比如:
-
Array.of('x', 'y')→['x', 'y'] -
Array.from('xy')→['x', 'y'](字符串被拆成字符) -
Array.from(new Set([1,2]))→[1, 2]

















