Array.prototype.includes
背景原因: 以前只能通过indexOf
来判断,比如
if (arr.indexOf(el) !== -1) {
...
}
这样的方式存在以下问题
- 当我们想要知道数组中是否存在某个指定元素,
indexOf
无法准确表达我们的意思。
因为indexOf
的意思是查找数组中指定元素的第一个索引,如果不存在,则返回-1。然后对indexOf
的结果进行比较才能确定我们想要的答案
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 入门教程-指数运算符
最后
文章浅陋,欢迎各位看官评论区留下的你的见解!
觉得有收获的同学欢迎点赞,关注一波!