📅  最后修改于: 2023-12-03 15:00:37.346000             🧑  作者: Mango
ES6 是 ECMAScript 2015 标准的通用名称,是 JavaScript 语言的下一个版本。它包含了一些新的语法结构和新的 API,使得 JavaScript 语言更加现代化、功能更加强大。下面介绍一些 ES6 中比较常用的新特性。
ES6 引入了两个新的声明变量的关键字:let 和 const。let 声明变量的作用域是块级作用域,const 声明的变量是常量,一旦声明不可被修改。
// 用 let 声明变量
let name = 'Alice';
if (true) {
let name = 'Bob';
console.log(name); // 输出 'Bob'
}
console.log(name); // 输出 'Alice'
// 用 const 声明常量
const PI = 3.1415;
PI = 3.14; // 报错,常量不可修改
ES6 中引入了模板字符串,可以通过反引号和 ${} 插值语法来方便地拼接字符串。
let name = 'Bob';
console.log(`Hello, ${name}!`); // 输出 'Hello, Bob!'
ES6 中可以使用解构赋值语法,按照一定的模式从数组和对象中提取值并赋值给变量。
// 数组解构赋值
let [a, b, c] = [1, 2, 3];
console.log(a); // 输出 1
console.log(b); // 输出 2
console.log(c); // 输出 3
// 对象解构赋值
let {x, y, z} = {x: 1, y: 2, z: 3};
console.log(x); // 输出 1
console.log(y); // 输出 2
console.log(z); // 输出 3
ES6 中引入了箭头函数,可以用更短的语法实现函数的定义。箭头函数总是匿名的,不能通过 new 关键字来调用。
// 传统的函数定义方式
function hello(name) {
console.log(`Hello, ${name}!`);
}
// 箭头函数
let hello = (name) => {
console.log(`Hello, ${name}!`);
};
ES6 中引入了 class 和 extends 关键字,可以更方便地定义类和继承关系。
// 定义一个类
class Person{
constructor(name, age) {
this.name = name;
this.age = age;
}
hello() {
console.log(`Hello, my name is ${this.name}, and I'm ${this.age} years old.`);
}
}
// 继承
class Student extends Person{
constructor(name, age, grade) {
super(name, age);
this.grade = grade;
}
study() {
console.log(`${this.name} is studying in grade ${this.grade}.`);
}
}
let alice = new Person('Alice', 20);
alice.hello(); // 输出 'Hello, my name is Alice, and I'm 20 years old.'
let bob = new Student('Bob', 18, 7);
bob.hello(); // 输出 'Hello, my name is Bob, and I'm 18 years old.'
bob.study(); // 输出 'Bob is studying in grade 7.'
ES6 中引入了 import 和 export 关键字,可以更方便地实现模块化编程。
// module.js
export function hello(name) {
console.log(`Hello, ${name}!`);
}
// main.js
import { hello } from './module.js';
hello('Alice'); // 输出 'Hello, Alice!'
以上就是 ES6 中比较常用的一些新特性。在实际开发中,熟练掌握 ES6 可以提高开发效率,使得代码更加清晰、易读、易维护。