es6解构赋值可直接提取函数返回的数组或对象字段,省去临时变量和点号访问,支持跳过项、重命名、默认值;但需防范null/undefined报错,避免过度嵌套。

ES6 解构赋值在处理函数返回值时,能直接把返回的数组或对象“摊开”成独立变量,省去中间临时变量和点号取值步骤,代码更紧凑、意图更清晰。
直接解构函数返回的数组
很多工具函数(如坐标解析、字符串分割、计算结果)习惯用数组返回多个值。传统写法需先存数组再取索引:
- 传统方式:const res = parseLocation(); const lat = res[0]; const lng = res[1];
- 解构写法:const [lat, lng] = parseLocation();
不仅少写三行,还天然表达“我只关心前两个值”。跳过中间项也简单:const [, , zoom] = getMapConfig(); 表示忽略前两项,只取第三个。
解构对象返回值,避免重复属性访问
当函数返回一个配置对象或响应体(如 { data, error, status }),解构可一次性提取所需字段:
- 传统方式:const resp = fetchUser(); const name = resp.name; const id = resp.id;
- 解构写法:const { name, id, avatar = '/default.png' } = fetchUser();
支持重命名(email: userEmail)和默认值(avatar = '...'),尤其适合接口字段不稳定或部分可选的场景。
用于 inference.sh 的 JavaScript/TypeScript SDK,可运行 AI 应用、构建代理、集成 150+ 模型。包名:@inferencesh/sdk(npm install),完整 TypeScript 支持。
在函数参数中直接解构返回值
配合箭头函数或高阶函数,可进一步链式简化。例如:
- getData().then(({ items, total }) => renderList(items, total));
- processResult([10, 20, 30]) → const [min, , max] = input;
无需为整个返回值单独声明变量,逻辑聚焦在真正使用的数据上,减少命名干扰和作用域污染。
注意边界:空值与结构匹配
解构对 null 或 undefined 会直接报错,不是静默失败。安全做法是:
- 加空值检查:const data = apiCall() || {}; 再解构
- 用默认值兜底:const { name = 'Guest', role = 'user' } = user || {};
- 避免深度嵌套解构(如 { a: { b: { c } } }),易出错且难调试
本质上,解构不是万能的“自动拆包”,而是要求右侧值具备对应结构——它让“提取”这件事显式、简洁、可控。










