箭头函数隐式返回需满足单表达式条件,省略return和{};返回对象须用()包裹;单参数可省括号,多参或无参不可省;含语句时须显式return。

箭头函数的隐式返回值能让代码更简洁,关键在于省略 return 关键字和花括号 {},但前提是函数体是**单个表达式**,且不包含语句(如 if、for、变量声明等)。
只有一行表达式时直接写
当函数逻辑就是计算并返回一个值,比如对参数做简单变换,直接把表达式写在箭头右侧即可:
-
const square = x => x * x;✅ 隐式返回x * x -
const getName = user => user.name;✅ 隐式返回user.name -
const isActive = user => user.status === 'online';✅ 返回布尔表达式结果
返回对象字面量要加小括号
如果不加括号,JS 会把花括号当成函数体的开始,导致语法错误或隐式返回 undefined。必须用 () 包裹对象:
-
const createUser = name => ({ id: Date.now(), name });✅ 正确返回对象 -
const getCoords = () => ({ x: 0, y: 0 });✅ 简洁又安全 -
const bad = () => { x: 1, y: 2 };❌ 这是带标签语句的空函数,不返回对象
多参数或无参数不能省略括号
参数部分的括号不是可选的语法糖,而是语法规则:
- 单参数可省括号:
x => x + 1 - 多参数必须加括号:
(a, b) => a + b - 无参数必须写空括号:
() => 'hello'
避免在隐式返回中混入语句
一旦需要条件判断、解构、await 或副作用操作,就不再适合隐式返回,应显式使用 {} 和 return:
- ❌
users => if (users.length) return users[0]; else return null;—— 语法错误 - ✅
users => users.length ? users[0] : null;—— 用三元表达式保持隐式返回 - ✅
async userId => { const user = await fetchUser(userId); return user; }—— 含await必须显式写块级结构


















