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

  

ES7学习笔记——Array.prototype.includes和求幂运算符**的更多相关文章

  1. [ES2016] Check if an array contains an item using Array.prototype.includes

    We often want to check if an array includes a specific item. It's been common to do this with the Ar ...

  2. Array.prototype.includes

    if (!Array.prototype.includes) {   Array.prototype.includes = function(searchElement /*, fromIndex*/ ...

  3. Javascript学习笔记--理解prototype

    prototype和closure是js中两个不好搞懂的概念,幸好网上有很多相关的文章,在网上查了一遍以后,总是是觉得有点理解了.今天先说说prototype. 之前一直被ajax in action ...

  4. Verilog学习笔记基本语法篇(二)·········运算符

    Verilog HDL的语言的运算符的范围很广,按照其功能大概可以分为以下几类: (1)算术运算符 +,-,*,/,% 优先顺序 !~ *  /   % +    - <<    > ...

  5. 数组Array和字符串String的indexOf方法,以及ES7(ES2016)中新增的Array.prototype.includes方法

    前言 我们在判断某一个字符是否存在于一个字符串中或者某一个值是否存在于一个数组中时,ES7之前我们需要使用indexOf,ES7引入了新的方法includes 语法 数组:Array.inexOf(s ...

  6. HTML 学习笔记 JavaScript (prototype)

    原博地址:http://www.cnblogs.com/dolphinX/p/3286177.html 原博客的作者是一个非常牛逼的前端大神,我作为一个初学者,在此借助大神的博客进行自己的学习.在这里 ...

  7. PytorchZerotoAll学习笔记(三)--自动求导

    Pytorch给我们提供了自动求导的函数,不用再自己再推导计算梯度的公式了 虽然有了自动求导的函数,但是这里我想给大家浅析一下:深度学习中的一个很重要的反向传播 references:https:// ...

  8. [前端JS学习笔记]JavaScript prototype 对象

    一.概念介绍 prototype 对象 : 原型对象.在JavaScript中, 每一个对象都继承了另一个对象,后者称为"原型对象". 只有 null 除外,它没有自己的原型对象. ...

  9. 剑指Offer的学习笔记(C#篇)-- 求1+2+3+...+n

    题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 一 . 直接解题吧 芽儿呦,突然觉得,我不说! ...

随机推荐

  1. 【BZOJ3312】[Usaco2013 Nov]No Change 状压DP+二分

    [BZOJ3312][Usaco2013 Nov]No Change Description Farmer John is at the market to purchase supplies for ...

  2. Spring.Net的使用

    1.Spring.Net的简单介绍 spring.net 框架是微软效仿java中的spring框架而推出的一种在.net中使用的框架,它使用配置的方式实现逻辑的解耦,它的主要功能集成在Spring. ...

  3. codeforces#516 Div2---ABCD

    A---Make a triangle! http://codeforces.com/contest/1064/problem/A 题意: 给定三个整数表示三角形的边.每次给边长可以加一,问至少要加多 ...

  4. Apache POI 读写 Excel 文件

    目录 写入 Excel 文件 读取 Excel 文件 遍历 Excel 文件 需要的 maven 依赖 完整代码 写入 Excel 文件 // 写入 Excel 文件 // ============= ...

  5. Oracle管理监控之Oracle数据库存储空间监控

    1.监控表空间使用率 基表:dba_data_files.dba_free_space 脚本: select a.tablespace_name, round((a.maxbytes / 1024 / ...

  6. asymmetric cryptographic algorithm

    https://baike.baidu.com/item/非对称加密算法/1208652?fr=aladdin 主要算法 编辑 RSA.Elgamal.背包算法.Rabin.D-H.ECC(椭圆曲线加 ...

  7. python操作redis详解

    https://www.cnblogs.com/koka24/p/5841826.html

  8. Django - 路由层(URLconf)

    一.django 静态文件配置 /mysite1/settings.py STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_ ...

  9. python中的Redis键空间通知(过期回调)

    介绍 Redis是一个内存数据结构存储库,用于缓存,高速数据摄取,处理消息队列,分布式锁定等等. 使用Redis优于其他内存存储的优点是Redis提供持久性和数据结构,如列表,集合,有序集和散列. 在 ...

  10. centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs 第十六节课

    centos linux系统日常管理3  服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,cur ...