ES6+ 重点语法
ES6+ 考点最密集的语法:let / const 块级作用域、箭头函数、模板字符串、解构赋值与默认参数、展开运算符(...)、class 语法糖、Symbol / BigInt、Map / Set、Proxy / Reflect、可选链(?.)与空值合并(??)、迭代器(for...of)。
回答策略是“对比着讲”:箭头函数 vs 普通函数(this / arguments / new);Map vs Object(键可任意类型、键有序、size 直接取);Set vs 数组(自动去重、查找 O(1));Proxy vs Object.defineProperty(Proxy 代理整个对象、能监听新增删除与数组下标 —— 这正是 Vue3 换掉 defineProperty 的原因)。
- 常考语法:解构 / 默认值 / 展开 / class / 可选链 / 空值合并
- Map 键可任意类型且有序、size 直接取;Set 天然去重、查找 O(1)
- Proxy 能拦截增删与数组变化,Vue3 因此弃用 defineProperty
JS
// 解构与默认值 const { name = '匿名', age = 18 } = { name: "小明" }; const [first, ...rest] = [1, 2, 3, 4]; console.log(name, age, first, rest); // 小明 18 1 [2,3,4] // 可选链 + 空值合并:深层取值的救星 const user = { addr: { city: '北京' } }; console.log(user?.addr?.city ?? '未知'); // 北京(链断了取默认值) // Map / Set const m = new Map([[{ id: 1 }, '对象做键']]); const s = new Set([1, 2, 2, 3]); console.log(s.size, [...s]); // 3 [1,2,3] —— 去重 // class:构造函数 + 原型方法的语法糖 class Animal { #weight = 0; // ES2022 私有字段 constructor(name) { this.name = name; } speak() { return this.name + ' 叫了一声'; } // 模板字符串也可 static create(n) { return new Animal(n); } // 静态方法 } console.log(Animal.create('猫').speak()); // Proxy:数组与新增属性都能拦截(Vue3 响应式基础) const arr = new Proxy([], { set(target, key, val) { console.log('设置', key, '=', val); target[key] = val; return true; } }); arr.push(1); // 设置 0 = 1;设置 length = 1
本节要点ES6+ 主线:作用域私有化(let / class / #字段)、异步语法糖、集合类型(Map/Set)、Proxy 代理。




