箭头函数简化函数书写,省略function、括号(单参数)、花括号和return(单表达式);多参数或无参数需括号;多语句或返回对象需花括号和return;this继承外层作用域。

箭头函数是 JavaScript 中简化函数书写(尤其是回调函数)的常用方式,它省略了 function 关键字、括号(单参数时)、花括号(单表达式时)和 return(隐式返回),让代码更简洁清晰。
单参数 + 单表达式:最简写法
当回调函数只有一个参数且只执行一个表达式时,可省略括号、花括号和 return:
-
传统写法:
[1, 2, 3].map(function(x) { return x * 2; }) -
箭头函数简化:
[1, 2, 3].map(x => x * 2)
多参数或无参数:需保留括号
参数个数不是 1 个时,必须用小括号包裹参数列表:
-
两个参数:
[1, 2, 3].reduce((acc, curr) => acc + curr, 0) -
无参数:
setTimeout(() => console.log('done'), 100)
含多语句或需显式返回对象:仍需花括号和 return
若回调中有多行逻辑,或要返回一个对象字面量,必须加花括号,并显式写 return(否则会把大括号当成代码块而非对象):
立即学习“Java免费学习笔记(深入)”;
-
多语句:
[1, 2, 3].filter(x => { const sq = x * x; return sq > 4; }) -
返回对象(注意括号):
[1, 2].map(x => ({ id: x, name: `item${x}` }))—— 外层圆括号防止被解析为代码块
注意 this 绑定差异:箭头函数不绑定自己的 this
箭头函数没有自己的 this,它继承外层作用域的 this。这在事件处理或定时器中常用来避免 this 指向丢失:
-
传统回调易出错:
button.addEventListener('click', function() { this.disabled = true; })—— 这里的this是 button,没问题;但若在对象方法中用setTimeout(function() { this.doSomething(); }, 100),this会变成全局对象或undefined(严格模式) -
箭头函数自动继承:
setTimeout(() => this.doSomething(), 100)——this保持外层对象上下文


















