箭头函数(Arrow Function)是 ES6 引入的一种简洁的函数表达式语法,以下是其完整格式和用法详解:
1. 基础格式 ★★★
完整形式(多行)
const 函数名 = (参数1, 参数2) => {
  // 函数体
  return 返回值;
};示例:
const sum = (a, b) => {
  const result = a + b;
  return result;
};单行简写(隐式返回)
const 函数名 = (参数) => 返回值;示例:
const double = num => num * 2; // 自动返回计算结果2. 参数格式
| 参数情况 | 语法示例 | 等价传统函数 | 
|---|---|---|
| 无参数 | () => { ... } | function() { ... } | 
| 单个参数 | x => { ... } | function(x) { ... } | 
| 多个参数 | (x, y) => { ... } | function(x, y) { ... } | 
| 剩余参数 | (...args) => { ... } | function(...args) { ... } | 
3. 特殊格式规则
对象返回值的简写
需用括号包裹对象,避免与函数体冲突:
// 错误写法(会被解析为函数体)
const createObj = () => { name: 'Alice' }; 
// 正确写法
const createObj = () => ({ name: 'Alice' });立即执行箭头函数(IIFE)
(() => {
  console.log('立即执行');
})();4. 与传统函数对比
// 传统函数
function add(a, b) {
  return a + b;
}
// 箭头函数等价形式
const add = (a, b) => a + b;关键区别:
- 箭头函数没有自己的 this(继承外层作用域)
- 不能用作构造函数(无 prototype属性)
- 没有 arguments对象
5. 常见使用场景
数组方法
const numbers = [1, 2, 3];
numbers.map(n => n * 2); // [2, 4, 6]事件处理器(需注意 this)
// React 示例(类组件)
class MyComponent extends React.Component {
  handleClick = () => {
    console.log(this); // 正确绑定组件实例
  };
  render() {
    return <button onClick={this.handleClick}>Click</button>;
  }
}异步操作
fetch('/api')
  .then(response => response.json())
  .then(data => console.log(data));6. 格式注意事项
- 参数括号 - 单个参数可省略括号:x => x * 2
- 零或多个参数必须加括号:(x, y) => x + y
 
- 单个参数可省略括号:
- 函数体括号 - 单行表达式可省略 {}并隐式返回
- 多行语句必须用 {}且需要显式return
 
- 单行表达式可省略 
- this 绑定 
 箭头函数的- this在定义时确定,无法通过- call/apply/bind修改:- const foo = () => console.log(this); foo.call({ bar: 1 }); // this 不会改变
总结
箭头函数通过简化的语法和固定的 this 绑定,特别适合:
- 短小的回调函数
- 需要保持 `this 一致性的场景
- 函数式编程中的纯函数
但在以下场景应避免使用:
- 对象方法定义
- 需要动态 this的场景(如 DOM 事件处理器)
- 需要使用 arguments或作为构造函数时
 我的书签
 我的书签
                                 添加书签
 添加书签 移除书签
 移除书签