ES7/ES2016新特性

includes()

includes和indexOf类似,都可以用来判断一个数组是否包含一个指定的值。不同的是:indexOf会返回一个元素在数组中的位置,如果没有找到该元素则返回-1;includes则返回true或false。

let arr = ["react", "angular", "vue"];

console.log(arr.indexOf("react"));

console.log(arr.includes("react"));

includes() 方法也可以用于判断字符串是否包含指定的子字符串。

let str = "Hello world, welcome to the Runoob。";
console.log(str.includes("world"));

includes第二可选参数fromIndex,它允许从特定位置开始寻找匹配。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。

console.log([1, 2, 3].includes(2)); // === true)
console.log([1, 2, 3].includes(4)); // === false)
console.log([1, 2, NaN].includes(NaN)); // === true)
console.log([1, 2, -0].includes(+0)); // === true)
console.log([1, 2, +0].includes(-0)); // === true)
console.log(["a", "b", "c"].includes("a")); // === true)
console.log(["a", "b", "c"].includes("a", 1)); // === false)

includes() 和 indexOf()只能判断简单类型的数据,对于复杂类型的数据,比如对象类型的数组,二维数组,这些,是无法判断的。

let arr = [1, [2, 3], 4];
arr.includes([2, 3]);  //false
arr.indexOf([2, 3]);    //-1

虽然两者都是采用 === 的操作符来作比较的,但是对于NaN的处理结果并不相同。在js中 NaN === NaN 的结果是false,indexOf()也是这样处理的,但是includes()不是这样的。

let arr = [1, NaN, 2, 3];
arr.indexOf(NaN);  //-1
arr.includes(NaN);  //true

求幂运算符**

求幂运算符**,**和Math.pow()都可以用于求幂运算,并且可以和 += 一样的用法。

// 递归函数
const calculateExponent = (base, exponent) => base * ((--exponent > 1) ? calculateExponent(base, exponent) : base);
console.log(calculateExponent(3, 2)); // 9

// 求幂运算符
console.log(3 ** 2);  // 9

// pow() 方法
console.log(Math.pow(3, 2)); // 9

let a = 3;
a **= 2;
console.log(a); // 9
    原文作者:zhouhao620
    原文地址: https://blog.csdn.net/zhouhao620/article/details/107483915
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞