1 Array.prototype.includes()方法

includes()用于查找一个值是否在数组中,如果在返回true,否则返回false

  1. ['a', 'b', 'c'].includes('a'); // true
  2. ['a', 'b', 'c'].includes('d'); // false

includes()方法接收两个参数,搜索的内容开始搜索的索引,默认值为0,若搜索值在数组中则返回true否则返回false

  1. ['a', 'b', 'c', 'd'].includes('b'); // true
  2. ['a', 'b', 'c', 'd'].includes('b', 1); // true
  3. ['a', 'b', 'c', 'd'].includes('b', 2); // false

indexOf方法对比,下面方法效果相同:

  1. ['a', 'b', 'c', 'd'].indexOf('b') > -1; // true
  2. ['a', 'b', 'c', 'd'].includes('b'); // true

includes()与indexOf对比:

  • includes相比indexOf更具语义化,includes返回的是是否存在的具体结果,值为布尔值,而indexOf返回的是搜索值的下标。
  • includes相比indexOf更准确,includes认为两个NaN相等,而indexOf不会。
  1. let a = [1, NaN, 3];
  2. a.indexOf(NaN); // -1
  3. a.includes(NaN); // true

另外在判断+0-0时,includesindexOf的返回相同。

  1. [1, +0, 3, 4].includes(-0); // true
  2. [1, +0, 3, 4].indexOf(-0); // 1

2 指数操作符(**)

基本用法:

  1. let a = 3 ** 2 ; // 9
  2. // 等效于
  3. Math.pow(3, 2); // 9

**是一个运算符,也可以满足类似假发的操作,如下:

  1. let a = 3;
  2. a **= 2; // 9