📜  ES6 |细绳(1)

📅  最后修改于: 2023-12-03 14:41:00.750000             🧑  作者: Mango

ES6 细绳

JavaScript 是一种现代化的编程语言,而 ES6 (ECMAScript 2015) 是一种对 JavaScript 进行升级的版本。本文将介绍 ES6 中的一些常用细节。

let 与 const 定义变量

ES6 引入了两个新的变量定义方式:let 和 const。

let 定义的是一个可修改的变量:

let foo = "bar";
foo = "baz";
console.log(foo); // 输出 "baz"

const 定义的是一个不可修改的变量:

const baz = "qux";
baz = "quux"; // 尝试修改会导致错误

使用 const 定义的变量一般作为常量使用。

解构赋值

解构赋值是一个很方便的操作,可以让我们用更少的代码设置多个变量。例如:

const animal = {
  type: "cat",
  name: "Tom",
  age: 2
};

const { type, name, age } = animal;

console.log(type); // 输出 "cat"
console.log(name); // 输出 "Tom"
console.log(age); // 输出 2

可以像上面这样在 const、let 或 var 关键字后面跟上一个对象,然后用花括号赋值变量,这是一种常见的模式。

剩余参数与扩展参数

ES6 引入的另一个非常方便的特性是剩余参数和扩展参数。

剩余参数允许我们将函数的任意数量的参数作为一个数组传递:

function sum(...args) {
  return args.reduce((total, value) => total + value, 0);
}

console.log(sum(1, 2, 3)); // 输出 6
console.log(sum(4, 5, 6, 7)); // 输出 22

扩展参数与剩余参数类似,但它们是在函数调用时展开一个数组,而不是在函数定义时收集它们:

function f(a, b, c) {
  return a + b + c;
}

const arr = [1, 2, 3];

console.log(f(...arr)); // 输出 6

这个例子中,我们使用扩展参数将 arr 数组的值解开并作为函数 f 的参数传递。

箭头函数

箭头函数是 ES6 引入的一种新的函数语法,它的主要特点是更短、更简洁:

const add = (a, b) => a + b;
console.log(add(2, 3)); // 输出 5

箭头函数的另一个方便之处在于它的上下文 this 始终绑定到上下文:

const button = document.querySelector("#myButton");

button.addEventListener("click", () => {
  console.log(this); // 输出 window 对象
});

ES6 也支持类声明,让 JavaScript 的面向对象编程更加直观:

class Animal {
  constructor(name) {
    this.name = name;
  }

  speak() {
    console.log(`${this.name} makes a noise.`);
  }
}

class Dog extends Animal {
  constructor(name) {
    super(name);
  }

  speak() {
    console.log(`${this.name} barks.`);
  }
}

const dog = new Dog("Rufus");

dog.speak(); // 输出 "Rufus barks."

这个例子中,Animal 类定义了一个 speak 方法,而 Dog 类继承了 Animal 类并覆盖了 speak 方法。

总结

以上是 ES6 中的一些重要的细节,包括 let 和 const 的变量定义,解构赋值,剩余参数和扩展参数,箭头函数和类声明。这些特性可以使 JavaScript 代码更加简洁、易于理解,也让开发者更容易编写出高效的 JavaScript 代码。