ES7系列目录
- 1 Array.prototype.includes()方法
- 2 指数操作符
所有整理的文章都收录到我《Cute-JavaScript》系列文章中,访问地址:http://js.pingan8787.com
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); // -1
-
a.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