📅  最后修改于: 2023-12-03 14:41:01.143000             🧑  作者: Mango
ECMAScript 6 (ES6), 也称为 ECMAScript 2015,是 ECMAScript 标准的第六个版本,于2015年6月正式发布。ES6 增加了许多新的语法特性,使得 JavaScript 语言更加强大和灵活。
本文将介绍 ES6 中比较重要的语法特性,让程序员更好的了解 ES6 的使用。
ES6 中新增了两个声明变量的关键字:let
和 const
。相对于 ES5 中的 var
,let
和 const
更加灵活,且具有块级作用域。
// var 声明变量
var a = 1;
function foo() {
var a = 2;
console.log(a); // output: 2
}
foo();
console.log(a); // output: 1
// let 声明变量
let b = 3;
function bar() {
let b = 4;
console.log(b); // output: 4
}
bar();
console.log(b); // output: 3
// const 声明变量
const c = 5;
// c = 6; // TypeError: Assignment to constant variable.
ES6 中新增了模板字符串,使得字符串的拼接更加方便。
const name = 'Tom';
const age = 18;
const str = `My name is ${name}, I'm ${age} years old.`;
console.log(str); // output: My name is Tom, I'm 18 years old.
ES6 中新增了箭头函数,使得函数的定义更加简洁,同时也避免了 this 指向问题。
// ES5
var sum = function(a, b) {
return a + b;
}
// ES6
const sum = (a, b) => a + b;
ES6 中新增了解构赋值,使得从数据结构中提取值更加方便。
const obj = { name: 'Tom', age: 18 };
const { name, age } = obj;
console.log(name); // output: Tom
console.log(age); // output: 18
const arr = [1, 2, 3];
const [a, b, c] = arr;
console.log(a); // output: 1
console.log(b); // output: 2
console.log(c); // output: 3
ES6 中新增了扩展运算符,使得数组和对象的操作更加方便。
// 数组
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [...arr1, ...arr2];
console.log(arr3); // output: [1, 2, 3, 4, 5, 6]
// 对象
const obj1 = { name: 'Tom' };
const obj2 = { age: 18 };
const obj3 = {...obj1, ...obj2};
console.log(obj3); // output: { name: 'Tom', age: 18 }
ES6 中新增了 class 关键字,使得面向对象编程更加简洁。
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHi() {
console.log(`My name is ${this.name}, I'm ${this.age} years old.`);
}
}
const person = new Person('Tom', 18);
person.sayHi(); // output: My name is Tom, I'm 18 years old.
ES6 引入了模块化的概念,具有模块化特性的代码可以被封装和复用。模块化可以使得代码更加清晰、易于维护。
// 导出模块
export const name = 'Tom';
export const age = 18;
export function sayHi() {
console.log(`My name is ${name}, I'm ${age} years old.`);
}
// 引入模块
import { name, age, sayHi } from './module.js';
console.log(name); // output: Tom
console.log(age); // output: 18
sayHi(); // output: My name is Tom, I'm 18 years old.
以上是 ES6 中比较重要的语法特性介绍,ES6 是 JavaScript 语言中一个重要的里程碑,除了本文介绍的内容之外,ES6 中还包含了更加强大和灵活的特性。掌握 ES6 的语法特性,可以使得程序员编写出更加优雅、高效的代码。