Logo
Section 1 / 16

ES2016 中的新特性

让我们来看看 ES2016 引入的新特性。

导入

ES2016 中的新特性

让我们来看看 ES2016 引入的新特性。

ES2016 仅引入了两个新特性:

  • Array.prototype.includes()
  • 指数运算符

Array.prototype.includes()

includes() 方法会在数组包含某个元素时返回 true,否则返回 false。

1let array = [1, 2, 4, 5]; 2 3console.log(array.includes(2)); 4// true 5console.log(array.includes(3)); 6// false

将 includes() 与 fromIndex 结合使用

我们可以为 .includes() 提供一个起始搜索的索引。默认值是 0,也可以传入负值。

第一个参数是要查找的元素,第二个参数是开始搜索的索引:

1let array = [1, 3, 5, 7, 9, 11]; 2 3console.log(array.includes(3, 1)); 4// 从数组索引 1 开始查找数字 3 5// true 6console.log(array.includes(5, 4)); 7// false 8console.log(array.includes(1, -1)); 9// 从数组末尾开始向前查找数字 1 10// false 11console.log(array.includes(11, -3)); 12// true

在第 6 行,array.includes(5, 4) 返回 false,因为虽然数组中确实包含数字 5,但它位于索引 2 处,而我们是从索引 4 开始查找的,因此找不到,返回 false。

array.includes(1, -1) 返回 false,因为我们从索引 -1(即数组最后一个元素)开始查找,并继续向后搜索。

array.includes(11, -3) 返回 true,因为我们从索引 -3 开始向前遍历,在路径上找到了值为 11 的元素。

指数运算符

在 ES2016 之前,我们通常这样写:

1console.log(Math.pow(2, 2)); 2// 4 3console.log(Math.pow(2, 3)); 4// 8

现在使用新的指数运算符,可以这样写:

1console.log(2**2); 2// 4 3console.log(2**3); 4// 8

当需要组合多个操作时,这个运算符会非常有用,例如:

1console.log(2**2**2); 2// 16 3console.log(Math.pow(Math.pow(2, 2), 2)); 4// 16

使用 Math.pow() 需要不断嵌套调用,代码容易变得冗长且混乱。指数运算符提供了一种更快、更简洁的实现方式。

在下一节课中,我们将通过一个测验和一个编程挑战来检验本节课所学内容。

ES6

测验