箭头函数(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或作为构造函数时 
