ES6(ECMAScript 2015)为 JavaScript 带来了大量改进,以下是核心特性概览:
1. 变量声明:let
与 const
🔄
- 块级作用域:
let
和const
提供块级作用域,替代var
的函数作用域 - 常量声明:
const
声明不可重新赋值的常量(如const PI = 3.14
) - 示例:
if (true) { let x = 10; // 只在 if 块内有效 const y = 20; // 不可修改 }
2. 箭头函数 📈
- 简洁语法:省略
function
关键字,使用=>
定义函数 - 词法作用域:箭头函数继承
this
词法环境 - 示例:
const square = num => num * num;
3. 类(Class)语法 🏗️
- 面向对象:使用
class
定义构造函数和方法 - 继承:通过
extends
实现继承 - 示例:
class Animal { constructor(name) { this.name = name; } }
4. 模块化开发 📁
- 导入导出:使用
import
和export
管理模块 - ES6 模块:支持静态导入和动态导入
- 示例:
import { add, subtract } from './math.js';
5. 解构赋值 🧩
- 数组解构:
const [a, b] = [1, 2];
- 对象解构:
const { name, age } = person;
- 参数解构:函数参数可直接解构
6. 模板字符串 📝
- 多行字符串:使用反引号(`)包裹
- 变量嵌入:
${expression}
插入动态内容 - 示例:
const name = "Alice"; console.log(`Hello, ${name}!`);
7. Promise 与异步处理 ⏳
- 异步流程:使用
Promise
管理异步操作 - 链式调用:
.then().catch()
处理成功/失败状态 - 示例:
fetch('https://api.example.com/data') .then(response => response.json()) .catch(error => console.error(error));
8. 新增数据类型 📦
- Symbol:创建唯一标识符
- Map/WeakMap:键值对集合(支持非对象键)
- Set/WeakSet:唯一值集合
9. 可选参数与默认值 📌
- 参数默认值:
function foo(a = 1, b = 2) { ... }
- 可选参数:使用
=
设置默认值
10. 展展运算符(Spread/Rest) 📈
- 展开数组:
const arr = [...array1, ...array2]
- rest 参数:
function sum(...numbers) { ... }
进一步学习
互动练习
- 尝试使用
let
和const
重构原有代码 - 实践箭头函数在数组方法中的应用(如
.map()
) - 创建一个简单的 ES6 模块并导入使用