ECMAScript 2015
ECMAScript 2015(ES6)于 2015 年 6 月发布。
核心特性
1. 块级作用域声明
let
声明:用于声明块级作用域的变量,避免了 var 声明的变量提升问题。
javascript
{
let x = 10;
console.log(x); // 输出: 10
}
console.log(x); // ReferenceError: x is not defined
const
声明:用于声明常量,一旦赋值后不可更改。
javascript
const PI = 3.14159;
console.log(PI); // 输出: 3.14159
PI = 3; // TypeError: Assignment to constant variable.
2. 箭头函数
引入了更简洁的函数定义语法,并且不绑定自己的this
。
javascript
const numbers = [1, 2, 3];
const squares = numbers.map((n) => n * n);
console.log(squares); // 输出: [1, 4, 9]
3. 模板字符串
使用反引号(`)定义多行字符串,并支持嵌入表达式。
javascript
const name = "Alice";
const greeting = `Hello, ${name}!`;
console.log(greeting); // 输出: Hello, Alice!
4. 解构赋值
允许从数组或对象中提取值,赋值给变量。
javascript
// 数组解构
const [a, b] = [1, 2];
console.log(a); // 输出: 1
console.log(b); // 输出: 2
// 对象解构
const { name, age } = { name: "Bob", age: 25 };
console.log(name); // 输出: Bob
console.log(age); // 输出: 25
5. 默认参数
为函数参数设置默认值。
javascript
function greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
greet(); // 输出: Hello, Guest!
greet("Alice"); // 输出: Hello, Alice!
6. 展开运算符
用于展开数组或对象。
javascript
// 数组展开
const arr1 = [1, 2];
const arr2 = [...arr1, 3, 4];
console.log(arr2); // 输出: [1, 2, 3, 4]
// 对象展开
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
console.log(obj2); // 输出: {a: 1, b: 2, c: 3}
7. 类(Class)
引入了基于原型的面向对象编程语法糖
。
javascript
class Person {
constructor(name) {
this.name = name;
}
greet() {
console.log(`Hello, my name is ${this.name}.`);
}
}
const alice = new Person("Alice");
alice.greet(); // 输出: Hello, my name is Alice.
8. 模块(Modules)
javascript
// 导出模块(math.js)
export function add(x, y) {
return x + y;
}
// 导入模块
import { add } from "./math.js";
console.log(add(2, 3)); // 输出: 5
9. Promise
用于处理异步操作
,避免回调地狱
。
javascript
const promise = new Promise((resolve, reject) => {
// 异步操作
setTimeout(() => {
resolve("Success!");
}, 1000);
});
promise.then((result) => {
console.log(result); // 输出: Success!
});
兼容性
Chrome 51+
Firefox 53+
Safari 10+
Edge 14+
IE 不支持
注:兼容性数据可能随着版本的更新而有所调整,建议开发者根据项目的具体需求参考最新的浏览器版本和 Polyfill 支持情况。
总结
ECMAScript 2015(ES6),是 JavaScript 语言的一个重要更新版本。它引入了许多新特性和改进,旨在使代码更加简洁、高效和易于维护。
参考文献