1 Array.prototype.includes()方法
includes()用于查找一个值是否在数组中,如果在返回true,否则返回false。
['a', 'b', 'c'].includes('a'); // true['a', 'b', 'c'].includes('d'); // false
includes()方法接收两个参数,搜索的内容和开始搜索的索引,默认值为0,若搜索值在数组中则返回true否则返回false。
['a', 'b', 'c', 'd'].includes('b'); // true['a', 'b', 'c', 'd'].includes('b', 1); // true['a', 'b', 'c', 'd'].includes('b', 2); // false
与indexOf方法对比,下面方法效果相同:
['a', 'b', 'c', 'd'].indexOf('b') > -1; // true['a', 'b', 'c', 'd'].includes('b'); // true
includes()与indexOf对比:
includes相比indexOf更具语义化,includes返回的是是否存在的具体结果,值为布尔值,而indexOf返回的是搜索值的下标。includes相比indexOf更准确,includes认为两个NaN相等,而indexOf不会。
let a = [1, NaN, 3];a.indexOf(NaN); // -1a.includes(NaN); // true
另外在判断+0与-0时,includes和indexOf的返回相同。
[1, +0, 3, 4].includes(-0); // true[1, +0, 3, 4].indexOf(-0); // 1
2 指数操作符(**)
基本用法:
let a = 3 ** 2 ; // 9// 等效于Math.pow(3, 2); // 9
**是一个运算符,也可以满足类似假发的操作,如下:
let a = 3;a **= 2; // 9
