ES7学习笔记——Array.prototype.includes和求幂运算符**

  一直以来,在前端开发时使用的基本都是ES5,以及少许的ES6。3月份换工做面试时,发现一些比较大的公司,对ES6比较重视,阿里的面试官直接问ES7和ES8,对于从未接触过人来讲,彻底是灾难。由此也显现出个人一个弊端,埋头苦干是没用的,还要着眼将来,紧盯发展趋势。近期在补习ES六、ES7和ES8。前端

  ES7仅仅新增了求幂运算符(**)和Array.prototype.includes()方法两项内容,大大下降了学习难度,也预示着ES标准进入了小步快跑、屡次少许更新的发展阶段。面试

  一、求幂运算符(**)数组

    基本用法: 2 ** 3    //8学习

    等同于:    Math.pow(2, 3)    //8this

    与其余运算符相似,**也能够有幂等操做:spa

      let  num  =  2;prototype

      num **=  3;   //8设计

    ES7的这个新特性是从Python、Ruby等语言模仿而来的。code

  二、Array.prototype.includes()方法对象

  includes()方法用来判断一个数组是否包含一个指定的值,根据状况,若是包含则返回true,不然返回false。

  

  let a = [1, 2, 3];
  a.includes(2);     // true 
  a.includes(4);     // false

  语法: arr.includes(searchElement [, fromIndex]);

      其中: searchElement是须要查找的元素值;可选的fromIndex是查找开始的元素的索引,默认为0。若是fromIndex为负值,则按升序从array.length + fromIndex的索引开始搜索,若是array.length + fromIndex的计算结果小于0,则整个数组都会被搜索; 若是fromIndex大于等于数组长度,则返回false,改善组组不会被搜索。

  通用方法: includes()方法有意设计为通用方法。它不要求this值是数组对象,因此它能够被用于其余类型的对象(如类数组对象)。Eg:

  (function() {
    console.log([].includes.call(arguments, 'a')); // true
    console.log([].includes.call(arguments, 'd')); // false
  })('a','b','c');

  与ES6中indexOf方法的比较:

  ① includes()方法比较简便,返回的结果是布尔值,无须像indexOf方法那样返回索引值后再比交;

  ② 二者都用全等(===)做比较,可是在includes()方法中 NaN === NaN的是true,可是在indexOf方法及js中,NaN === NaN返回false。

  ③ includes()方法认为 +0 和 -0 是相同的。这一点与indexOf()相同。

相关文章
相关标签/搜索