JavaScript函数可通过数组或对象返回多个值:数组适合顺序固定、数量明确的场景,支持解构赋值;对象则通过键名提升语义清晰度和可维护性,支持部分解构;二者均可结合解构语法简化使用,但需注意空值边界处理。

JavaScript 中函数只能返回一个值,但可以通过数组(或对象)把多个值“打包”一起返回,这是最常用也最直接的方式。
用数组直接返回多个值
函数体内把需要返回的值放进一个数组,然后 return 这个数组。调用时得到的就是一个数组,再通过索引或解构获取其中各项。
- 简单明了,适合顺序固定、数量明确的返回值
- 调用方需知道返回数组中各元素的位置和含义
示例:
function getCoordinates() {
return [10, 20, 30]; // x, y, z
}
const [x, y, z] = getCoordinates(); // 解构赋值
console.log(x, y, z); // 10 20 30
用对象返回带名称的多个值
如果返回值语义重要、顺序易混淆,推荐用对象包装——每个值有明确键名,可读性和维护性更好。
立即学习“Java免费学习笔记(深入)”;
- 避免依赖位置,支持部分解构或按需取值
- 适合返回字段较多、含义不直观或可能扩展的场景
示例:
function getUserInfo() {
return { name: "Alice", age: 28, role: "admin" };
}
const { name, role } = getUserInfo(); // 只取需要的字段
console.log(name, role); // Alice admin
结合解构提升使用体验
无论返回数组还是对象,现代 JavaScript 的解构语法能让接收端更简洁自然。
- 数组解构适用于已知顺序且结构稳定的情况
- 对象解构更适合强调语义、容忍字段增减或跳过某些值
- 也可混合使用:比如返回一个对象,其某个属性本身是数组
例如:
function getStats() {
return {
min: 5,
max: 95,
values: [12, 45, 78]
};
}
const { min, values } = getStats();
console.log(min, values[0]); // 5 12
注意返回空数组或空对象的边界情况
当函数逻辑可能无结果时,返回空数组 [] 或空对象 {} 是常见做法,但调用方需主动判断,避免后续操作出错。
- 建议在文档或函数命名中体现可能为空(如
findItems()而非getItems()) - 可用可选链(
?.)或空值合并(??)安全访问
例如:
function findFirstMatch(arr, condition) {
const item = arr.find(condition);
return item ? { id: item.id, label: item.name } : {};
}
const result = findFirstMatch(data, x => x.active);
console.log(result?.label ?? "未找到"); // 安全读取


















