ECMAScript 2015(简称ES6)

变量声明:let和const

ES6引入了letconst来替代传统的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开发者的必经之路。