ECMAScript 2015(简称ES6)
变量声明:let和const
ES6引入了let
和const
来替代传统的var
声明。let
提供了块级作用域,解决了var
的变量提升问题:
let name = '张三';
const PI = 3.14159; // 常量不可重新赋值
箭头函数
箭头函数=>
简化了函数表达式,自动绑定当前上下文:
const sum = (a, b) => a + b;
[1, 2, 3].map(x => x * 2);
模板字符串
使用反引号`
创建多行字符串和嵌入表达式:
const message = `你好,${name}!
今天是${new Date().toLocaleDateString()}`;
解构赋值
从数组或对象中提取值到变量:
const [x, y] = [1, 2];
const {name, age} = person;
类和模块
ES6引入了基于类的面向对象编程:
class Person {constructor(name) {this.name = name;}greet() {return `你好,我是${this.name}`;}
}
模块系统使用import/export
:
// math.js
export const PI = 3.14159;// app.js
import {PI} from './math.js';
Promise和异步编程
Promise改善了异步代码的组织方式:
fetch('/api/data').then(response => response.json()).then(data => console.log(data)).catch(error => console.error(error));
其他重要特性
- 默认参数值:
function greet(name = '访客') {...}
- 剩余参数:
function sum(...numbers) {...}
- 扩展运算符:
const arr = [...arr1, ...arr2]
- Symbol:新的原始数据类型
ES6的这些特性使JavaScript变得更强大、更易读、更易维护。虽然现代浏览器已广泛支持ES6,但在生产环境中使用Babel等工具转译代码仍然是推荐做法,以确保兼容性。掌握ES6是成为现代JavaScript开发者的必经之路。