最全 ECMAScript 攻略之 ES2016-ES7

1,086 阅读1分钟

Array.prototype.includes

背景原因: 以前只能通过indexOf 来判断,比如

if (arr.indexOf(el) !== -1) {
    ...
}

这样的方式存在以下问题

  1. 当我们想要知道数组中是否存在某个指定元素,indexOf无法准确表达我们的意思。

因为indexOf的意思是查找数组中指定元素的第一个索引,如果不存在,则返回-1。然后对indexOf的结果进行比较才能确定我们想要的答案

  1. indexOf无法判断NaN,因此[NaN].indexOf(NaN)=== -1,返回 true

Array.prototype.includes方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似。

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);

求幂运算符(Exponentiation operator)

// 2的平方
let squared = 2 ** 2;
// same as: 2 * 2   Math.Pow(2,2)

// 2的三次方
let cubed = 2 ** 3;
// same as: 2 * 2 * 2   Math.Pow(2,3)

更多详细内容参考ES 入门教程-指数运算符


最后

文章浅陋,欢迎各位看官评论区留下的你的见解!

觉得有收获的同学欢迎点赞,关注一波!

good

往期文章