ES2015 (ES6)
ES2015 是 JavaScript 历史上最大的一次跨越,引入了大量现代编程语言特性。
1. 变量声明 (let & const)
引入块级作用域(Block Scope),解决了 var 的变量提升和全局污染问题。
let:声明可变变量。const:声明常量(一旦初始化不可重新赋值,但对象/数组内部属性可修改)。
2. 箭头函数 (Arrow Functions)
提供了更简洁的函数书写方式,且没有自己的 this,其 this 继承自外层词法作用域。
const add = (a, b) => a + b;
3. 模板字符串 (Template Literals)
使用反引号 ` 允许嵌入表达式和多行字符串。
const msg = `Hello, ${name}!`;
4. 解构赋值 & 延展操作符
极大简化了对象和数组的赋值与合并。
// 解构
const { name, age } = user;
const [first, ...rest] = array;
// 延展 (Spread)
const newObj = { ...oldObj, key: 'value' };
5. Class 类
引入了基于原型的面向对象语法糖 class、constructor 和 extends,让继承变得更清晰。
6. Promise
原生提供异步操作的解决方案,告别“回调地狱”(Callback Hell)。
7. ES Module
原生模块化方案,使用 import 和 export 进行模块的静态加载。
8. 新数据结构 (Set & Map)
Set:成员值唯一的集合,常用于数组去重([...new Set(arr)])。Map:键值对集合,与 Object 不同的是,它的键可以是任意数据类型。
9. Proxy & Reflect
- Proxy:可以拦截对象的底层操作(如属性查找、赋值、枚举、函数调用等),Vue3 的响应式核心。
- Reflect:提供拦截 JavaScript 操作的方法,配合 Proxy 使用,保证
this指向正确。
10. Symbol
一种新的原始数据类型,表示独一无二的值,常用于定义对象的私有属性。