复习ES(6-11)语法之ES7

发布时间 2023-07-09 19:26:23作者: 小风车吱呀转

Array.prototype.includes(searchEle,fromIndex)

Array.prototype.includes方法返回一个布尔值,表示某个数组是否包含给定的值

该方法的第二个参数表示搜索的起始位置,默认为0。如果第二个参数为负数,则表示倒数的位置,如果这时它大于数组长度(比如第二个参数为-4,但数组长度为3),则会重置为从0开始。

// const arr = ["es6", "es7", "es8"];
// console.log(arr.includes("es7")); // true
// console.log(arr.includes("es7", -1)); // false
// console.log(arr.includes("es7", -2)); // true

const arr = ["es6", ["es7", "es8"], "es9"];
console.log(arr.includes(["es7", "es8"])); // false
console.log(arr.indexOf(["es7", "es8"])); // -1

没有该方法之前,我们通常使用数组的indexOf方法,检查是否包含某个值。

indexOf方法有两个缺点,一是不够语义化,它的含义是找到参数值的第一个出现位置,所以要去比较是否不等于-1,表达起来不够直观。二是,它内部使用严格相等运算符(===)进行判断,这会导致对NaN的误判。

const arr = ["es6", "es7", NaN, "es8", 2];
console.log(arr.includes(NaN)); // true
console.log(arr.indexOf(NaN)); // -1

幂运算符:**

它可以用来指数运算,等同于Math.pow()

//实现指数运算
function pow(x, y) {
  let res = 1;
  for (let i = 0; i < y; i++) {
    res *= x;
  }
  return res;
}
console.log(pow(2, 10)); // 1024
console.log(Math.pow(2, 10)); // 1024
console.log(2 ** 10); // 1024