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()相同。
ES7学习笔记——Array.prototype.includes和求幂运算符**的更多相关文章
- [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 ...
- Array.prototype.includes
if (!Array.prototype.includes) { Array.prototype.includes = function(searchElement /*, fromIndex*/ ...
- Javascript学习笔记--理解prototype
prototype和closure是js中两个不好搞懂的概念,幸好网上有很多相关的文章,在网上查了一遍以后,总是是觉得有点理解了.今天先说说prototype. 之前一直被ajax in action ...
- Verilog学习笔记基本语法篇(二)·········运算符
Verilog HDL的语言的运算符的范围很广,按照其功能大概可以分为以下几类: (1)算术运算符 +,-,*,/,% 优先顺序 !~ * / % + - << > ...
- 数组Array和字符串String的indexOf方法,以及ES7(ES2016)中新增的Array.prototype.includes方法
前言 我们在判断某一个字符是否存在于一个字符串中或者某一个值是否存在于一个数组中时,ES7之前我们需要使用indexOf,ES7引入了新的方法includes 语法 数组:Array.inexOf(s ...
- HTML 学习笔记 JavaScript (prototype)
原博地址:http://www.cnblogs.com/dolphinX/p/3286177.html 原博客的作者是一个非常牛逼的前端大神,我作为一个初学者,在此借助大神的博客进行自己的学习.在这里 ...
- PytorchZerotoAll学习笔记(三)--自动求导
Pytorch给我们提供了自动求导的函数,不用再自己再推导计算梯度的公式了 虽然有了自动求导的函数,但是这里我想给大家浅析一下:深度学习中的一个很重要的反向传播 references:https:// ...
- [前端JS学习笔记]JavaScript prototype 对象
一.概念介绍 prototype 对象 : 原型对象.在JavaScript中, 每一个对象都继承了另一个对象,后者称为"原型对象". 只有 null 除外,它没有自己的原型对象. ...
- 剑指Offer的学习笔记(C#篇)-- 求1+2+3+...+n
题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 一 . 直接解题吧 芽儿呦,突然觉得,我不说! ...
随机推荐
- 常用的jq插件
1.时间版翻转 FlipClock-master 2.整屏切换 fullpage 3.轮播图 swiper 4.滚动条样式 mCustomScrollbar 5.过滤和排序布局插件 Isotope. ...
- java中得到文件MIME类型的几种方法(转)
本文转载自:http://hotsunshine.iteye.com/blog/857485 使用 javax.activation.MimetypesFileTypeMap 需要引入activat ...
- 微信小程序 --- 设置页面的标题
第一种方式:修改 page.json文件 { "navigationBarTitleText": "豆瓣 - 电影" } 第二种方式:使用 JS 修改: wx. ...
- onethink插件控制器如何访问?
具体路由分析就不说啦!就是那样.这里我只是方便访问来做一个记录,方便复制粘贴访问: 例如:新增一个Baoming的插件: 那么如何,访问这个控制里面方法呢? 第一种情况:这个控制器使用的是Admin模 ...
- AVG
AVG([ DISTINCT | ALL ] expr) [ OVER(analytic_clause) ] SELECT MANAGER_ID, LAST_NAME, ...
- loadrunner多场景的串行执行以及定时执行
方法一: 既然是脚本串行执行,那在场景设计中必然是要用多个脚本,要注意的是需要将Scenario Schedule中的Schedule by设置为Group的模式.然后按实际需要依次设置每个脚本的Sc ...
- postgresql----ANY/SOME&&ALL
一.ANY/SOME WHERE expression operator ANY (subquery)WHERE expression operator SOME (subquery) 其实ANY和S ...
- ArcGIS API for JavaScript开发笔记(一)——ArcGIS for Javascript API 3.14本地部署
堪称史上最详细的< ArcGIS forJavascript API 3.14本地部署>文档,有图有真相~~~ ---------环境:Windows server 2012R2,IIS ...
- Flink简介及使用
一.Flink概述 官网:https://flink.apache.org/ mapreduce-->maxcompute HBase-->部门 quickBI DataV Hive--& ...
- Mysql中datetime和timestamp区别
DATETIME日期和时间的组合.支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'.MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DA ...