所属板块:5. ES6+ 高频新特性
记录日期:2026-03-xx
更新:遇到箭头函数 this 或参数处理相关题时补充
1. 箭头函数(Arrow Functions):函数形态的彻底革新
箭头函数 () => {} 不是普通函数的简写,而是彻底改变了函数行为的语法糖。它有四大“没有”,这是面试中最高频的考点之一。
-
没有自己的 this
- this 在定义时就由外层作用域决定(词法 this)
- 永远无法被
call、apply、bind改变
const obj = { name: "张三", say: () => { console.log(this.name); } // this → window(非严格模式) }; obj.say(); // undefined(箭头函数不绑定 this) -
没有 arguments 对象
- 必须用 Rest 参数
...args代替
const fn = (...args) => console.log(args); fn(1, 2, 3); // [1, 2, 3] - 必须用 Rest 参数
-
不能作为构造函数(不能 new)
- 没有
prototype属性,也没有内部[[Construct]]方法
const Person = () => {}; new Person(); // TypeError - 没有
-
不能用作 Generator 函数
- 不能使用
yield关键字
- 不能使用
2. 函数参数的新特性
默认参数(Default Parameters):
- 支持惰性求值(只有真正需要时才计算)
function fetchData(url, timeout = 3000) {
// timeout 未传或传 undefined 时才使用默认值
}
Rest 参数(...args):
- 把多余参数收集成真正的数组(取代类数组 arguments)
- 必须放在最后
function sum(...numbers) {
return numbers.reduce((a, b) => a + b, 0);
}
sum(1, 2, 3, 4); // 10
3. 箭头函数 vs 普通函数实战对比
| 场景 | 普通函数 | 箭头函数 | 推荐场景 |
|---|---|---|---|
| 对象方法 | this 指向调用者 | this 指向外层 | 普通函数(需 this) |
| 回调函数 | this 容易丢失 | this 稳定 | 箭头函数(事件回调) |
| 需要 arguments | 有 | 无(用 ...args) | 普通函数 |
| 需要 new | 可以 | 不可以 | 普通函数 |
4. 小结 & 复习时的“函数进化视角”
- 箭头函数的核心是词法 this + 更简洁语法,但有明确的使用边界
- 默认参数 + Rest 参数让函数参数处理现代化
- [5-1] 的变量与数据结构 + 本文的函数进化,为后面的对象扩展与 Proxy 打下基础
下一篇文章会进入 [5-3]:对象的扩展与元编程(对象字面量增强、展开语法、Proxy 与 Reflect 双子星)——这是 Vue3 响应式系统的核心。
返回总目录:戳这里