返回

进阶前端开发——ES6语法漫谈

前端

ES6,并不是一个新鲜的东西,ES7、ES8已经赶脚了。但是,东西不在于新,而在于总结。每个学前端的人,身边也必定有本阮老师的《ES6标准入门》或者翻译的《深入理解ECMAScript6》。本篇主要是对ES6的一些常用知识点进行一个总结。如果你喜欢我的文章,欢迎评论,欢迎Star。

变量声明

ES6中引入了let和const两种新的变量声明方式,与var相比,let和const声明的变量具有块级作用域。这意味着,let和const声明的变量只能在声明它们的块内访问,而var声明的变量可以在整个函数或全局作用域内访问。

// var声明的变量
var a = 1;

// let声明的变量
let b = 2;

// const声明的变量
const c = 3;

// 在块内访问let和const声明的变量
{
  console.log(b); // 2
  console.log(c); // 3
}

// 在块外访问let和const声明的变量
console.log(a); // 1
console.log(b); // ReferenceError: b is not defined
console.log(c); // ReferenceError: c is not defined

对象字面量

ES6中引入了新的对象字面量语法,允许在对象字面量中使用计算属性名和方法简写。

// ES5中的对象字面量
var person = {
  name: "John",
  age: 30,
  greet: function() {
    console.log("Hello, my name is " + this.name);
  }
};

// ES6中的对象字面量
const person = {
  name: "John",
  age: 30,
  greet() {
    console.log("Hello, my name is " + this.name);
  }
};

箭头函数

箭头函数是ES6中引入的一种新的函数语法,它可以简化函数的编写,尤其是当函数体很短时。

// ES5中的函数
function add(a, b) {
  return a + b;
}

// ES6中的箭头函数
const add = (a, b) => a + b;

ES6中引入了class,允许使用更简洁的语法来定义类。

// ES5中的类
function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    console.log("Hello, my name is " + this.name);
  };
}

// ES6中的类
class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  greet() {
    console.log("Hello, my name is " + this.name);
  }
}

模块

ES6中引入了模块系统,允许将代码组织成不同的模块,并根据需要进行导入和导出。

// 创建一个名为"person.js"的模块
export class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  greet() {
    console.log("Hello, my name is " + this.name);
  }
}

// 在另一个模块中导入"person.js"模块
import { Person } from "./person.js";

const person = new Person("John", 30);
person.greet();

以上就是ES6中一些最常使用的特性的简要概述。如果你想了解更多关于ES6的内容,我强烈建议你阅读阮老师的《ES6标准入门》或翻译的《深入理解ECMAScript6》。