zoukankan      html  css  js  c++  java
  • ES7学习笔记——Array.prototype.includes和求幂运算符**

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

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

      1、求幂运算符(**)

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

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

        与其他运算符类似,**也可以有幂等操作:

          let  num  =  2;

          num **=  3;   //8

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

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

      
  • 相关阅读:
    新组件或功能怎么依附到已有的架构上
    高内聚、低耦合
    软件质量的定义
    软件架构与组件
    架构设计之拥抱着变化而设计(部分讲义分享)
    组件设计原则之概念篇(四)
    抽象类(接口类)的作用
    类,抽象基类,接口类三者间的区别与联系(C++)
    软件的可变性
    软件设计的复杂度
  • 原文地址:https://www.cnblogs.com/zhengxj1991/p/9045985.html
Copyright © 2011-2022 走看看