一直以來,在前端開發時使用的基本都是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()相同。