Skip to main content

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 类

引入了基于原型的面向对象语法糖 classconstructorextends,让继承变得更清晰。

6. Promise

原生提供异步操作的解决方案,告别“回调地狱”(Callback Hell)。

7. ES Module

原生模块化方案,使用 importexport 进行模块的静态加载。

8. 新数据结构 (Set & Map)

  • Set:成员值唯一的集合,常用于数组去重([...new Set(arr)])。
  • Map:键值对集合,与 Object 不同的是,它的键可以是任意数据类型。

9. Proxy & Reflect

  • Proxy:可以拦截对象的底层操作(如属性查找、赋值、枚举、函数调用等),Vue3 的响应式核心。
  • Reflect:提供拦截 JavaScript 操作的方法,配合 Proxy 使用,保证 this 指向正确。

10. Symbol

一种新的原始数据类型,表示独一无二的值,常用于定义对象的私有属性。