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()相同。

相關文章
相關標籤/搜索