ES7 新特性介绍

Array的新方法includes

相对于ES6中的indexOf,基本作用是一样的,都是检查一个元素是否存在于数组中,但是它返回的是一个布尔值。
includes()作用,是查找一个值在不在数组里,若是存在则返回true,不存在返回false.

  //基本用法。
  let arr = ["北京","上海","广州"];
    arr.includes("北京");//true
    arr.includes("济南");//false

  //接收两个参数:要搜索的值和搜索的开始索引。
  let arr = ["北京","上海","广州"];
   arr.includes("上海");//true
   arr.includes("上海",1);//true
   arr.includes("上海",2);//false
  
  //与ES6中的indexOf()比较
  var arr = [1, 2, 3]
  var a = 1;
  arr.includes(a)   //true
  arr.indexOf(a)    //0

  //只能判断简单类型的数据,对于复杂类型的数据,比如对象类型的数组,二维数组,这些,是无法判断的。
  var arr = [1, [2, 3], 4]
   arr.includes([2, 3])   //false
   arr.indexOf([2, 3])    //-1

includes()返回的是布尔值,能直接判断数组中存不存在这个值,而indexOf()返回的是索引,这一点上前者更加方便。
两者都是采用===的操作符来作比较的,不同之处在于:对于NaN的处理结果不同。
我们知道js中 NaN === NaN 的结果是false,indexOf()也是这样处理的,但是includes()不是这样的。

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

求幂运算符

  //基本用法
  3 ** 2  //9
  效果同
  Math.pow(3, 2) //9

  //由于是运算符,所以可以和 +=一样的用法
  var b = 3;
  b **= 2;
  console.log(b); //9
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容