一直以来,在前端开发时使用的基本都是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()相同。