ES7(ECMAScript 2016)是JavaScript语言的一个重要版本更新,它们引入了一些新特性和语法改进,使得JavaScript编程更加高效、灵活和易于理解。
1、Array.prototype.includes
此方法用于检测一个数组是否包含一个特定的值,根据情况,如果包含则返回true,否则返回false。这与之前常用的indexOf()方法有些类似,但indexOf()返回的是元素的索引,如果不存在则返回-1,而includes()直接返回布尔值。
arr.includes(searchElement, fromIndex)
searchElement: 必须。需要查找的元素值。
fromIndex: 可选。从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。
const arr = ['a', 'b', 'c', 'd', 'e'];
const arr1 = [1, 2, NaN];
arr.includes('a'); // true
arr.includes('f'); // false
arr.includes('d', 2); // true
arr.includes('b', 2); // false
arr1.includes(NaN); // true
注意:当fromIndex为负值时,分两种情况,第一种是fromIndex的绝对值大于等于数组的长度时,则查找整个数组;第二种如果小于数组的长度时,则使用数组长度 + fromIndex计算出的索引作为新的fromIndex。
const arr = ['a', 'b', 'c', 'd', 'e'];
arr.includes('c', -99); // true
arr.includes('a', -5); // true
arr.includes('d', -3); // true
arr.includes('a', -1); // false
此外,includes方法也可以用于检查特定元素是包含在字符串中。
string.includes(searchvalue, start)
searchvalue:必需,要查找的字符串。
start:可选,设置从那个位置开始查找,默认为 0。
const url = "https://www.xxxx.com/#/test/index.html"
url.includes('https://'); // true
url.includes('/#/'); // true
url.includes('https://', 10); // false
2、指数幂运算符**
Exponentiation Operator 是一个用于进行指数运算的运算符,它允许将一个数值(底数)进行指定次数的乘方运算。
** 可以看做是Math.pow(x , y)的语法糖,其作用与Math.pow()一致。
语法:x ** y,x表示底数,即要进行乘方运算的数值。y表示指数,表示要将底数乘方的次数。
2 ** 6; // 64
Math.pow(2, 6); // 64
3 ** 3; // 27
Math.pow(3, 3); // 27
100 ** 0; // 1
Math.pow(100, 0); // 1