ES15 即 ECMAScript 2015,也称为 ES6,是 JavaScript 语言的一次重大更新,引入了许多新特性,极大地提升了代码的可读性、简洁性和功能表现力。以下是 ES15 的一些核心特性:
1. 变量声明:let
和 const
- 替代
var
,解决了变量提升和作用域问题。 let
声明可变变量,const
声明不可变常量(块级作用域)。
if (true) {let x = 10; // 块级作用域,外部无法访问const y = 20; // 常量,不能重新赋值
}
console.log(x); // 报错:x is not defined
2. 箭头函数(Arrow Functions)
- 简化函数语法,且不绑定自己的
this
(继承外部作用域的this
)。
// 传统函数
const add = function(a, b) {return a + b;
};// 箭头函数
const add = (a, b) => a + b;// 带函数体的箭头函数
const greet = (name) => {console.log(`Hello, ${name}!`);
};
3. 模板字符串(Template Strings)
- 用反引号(
)包裹,支持多行字符串和变量插值(
${}`)。
const name = "Alice";
const age = 30;
const message = `Name: ${name}, Age: ${age}
This is a multi-line string.`;
4. 解构赋值(Destructuring)
- 从数组或对象中提取值,简化变量赋值。
// 数组解构
const [a, b, ...rest] = [1, 2, 3, 4]; // a=1, b=2, rest=[3,4]// 对象解构
const { name, age } = { name: "Bob", age: 25 };// 函数参数解构
const printUser = ({ name, age }) => console.log(name, age);
5. 默认参数(Default Parameters)
- 为函数参数设置默认值。
const greet = (name = "Guest") => {console.log(`Hello, ${name}!`);
};
greet(); // 输出:Hello, Guest!
6. 扩展运算符(Spread Operator)
- 用
...
表示,用于展开数组或对象。
// 数组展开
const arr1 = [1, 2];
const arr2 = [...arr1, 3, 4]; // [1,2,3,4]// 对象展开(浅拷贝)
const obj1 = { a: 1 };
const obj2 = { ...obj1, b: 2 }; // {a:1, b:2}
7. 类(Classes)
- 引入面向对象的类语法(语法糖,本质还是原型继承)。
class Person {constructor(name) {this.name = name;}greet() {console.log(`Hello, ${this.name}`);}
}class Student extends Person {constructor(name, grade) {super(name); // 调用父类构造函数this.grade = grade;}
}
8. 模块(Modules)
- 支持
import
和export
关键字,实现代码模块化。
// math.js
export const add = (a, b) => a + b;// app.js
import { add } from './math.js';
console.log(add(2, 3)); // 5
9. Promise
- 解决异步编程的回调地狱问题,用于处理异步操作。
const fetchData = () => {return new Promise((resolve, reject) => {setTimeout(() => {resolve("Data fetched");}, 1000);});
};fetchData().then(data => console.log(data));
10. 其他重要特性
for...of
循环:遍历可迭代对象(数组、字符串等)。
for (const num of [1, 2, 3]) {console.log(num);
}
- Set 和 Map:新的数据结构(Set 存储唯一值,Map 存储键值对)。
- 对象简写:属性和方法的简洁写法。
const name = "Tom";
const user = { name, greet() { console.log(name); } };
ES15 的这些特性奠定了现代 JavaScript 开发的基础,目前已被所有主流浏览器支持,是前端开发者必须掌握的核心知识。