ES7新特性

ES6是多年来JavaScript的重大版本变革,深受开发者的欢迎。

ES6就是ES2015,也就是从此时开始,JavaScript变为每年更新一次,按年计算依次类推。ES7(2016年)、ES8(2017年)、ES9(2018年)。

除了ES6更新幅度较大之外,后面的几次更新较小。了解起来也比较容易。

ES7

ES7在ES6的基础上添加了三个内容:求幂运算符(**)、Array.prototype.includes()方法以及函数作用域中严格模式的变更。

1、求幂运算符(**)

console.log( 3**2 )  // 9
// 相当于 数学方法 Math.pow(3, 2)

使用起来更简洁。

2、Array.prototype.includes() 方法

此方法是判断一个元素是否在数组中,返回一个布尔值,true或者false。该方法只能判断一些简单类型的数据,复杂类型则无法判断。和indexOf方法作用类似。

该方法接受两个参数,第一个就是要判断的数据,第二个是开始位置的索引值。

 1 let arr1 = [1, 2, 3, ‘tom‘, ‘jerry‘];
 2 let arr2 = [1, [2, 3], 4];
 3 let arr3 = [{name: ‘tom‘}, {name: ‘jerry‘}, {age: 24}];
 4
 5 console.log( arr1.includes(1) )             // true
 6 console.log( arr1.includes(1, 1) )             // false  从下标为1的开始
 7 console.log( arr1.includes(‘tom‘) )         // true
 8 console.log( arr2.includes([2, 3]) )        // false
 9 console.log( arr3.includes({name: ‘tom‘}) ) // false
10 console.log( arr1.indexOf(1) )             // 0
11 console.log( arr1.indexOf(‘tom‘) )         // 3
12 console.log( arr2.indexOf([2, 3]) )        // -1
13 console.log( arr3.indexOf({name: ‘tom‘}) ) // -1

与indexOf的优劣:如果只是判断某元素是否存在于数组中,includes 方法更好些,因为是返回的布尔值可以直接拿来判断使用。

如果想要判断是否存在于数组中并且想要获取该元素的下标,则 indexOf方法更好些。

还有一点:就是对 NaN 的判断:

1 let arr4 = [1, 2, NaN];
2 console.log( arr4.indexOf(NaN) )    // -1
3 console.log( arr4.includes(NaN) )   // true

原文地址:https://www.cnblogs.com/xguoz/p/11421219.html

时间: 2024-10-10 22:56:36

ES7新特性的相关文章

es7 --- 新特性

ES7只有2个特性: includes() 指数操作符 不使用ES7 使用indexOf()验证数组中是否存在某个元素,这时需要根据返回值是否为-1来判断: let arr = ['react', 'angular', 'vue']; if (arr.indexOf('react') !== -1) { console.log('React存在'); } 使用ES7 使用includes()验证数组中是否存在某个元素,这样更加直观简单: let arr = ['react', 'angular'

es7新特性 includes用法

返回数组是否包含某个元素 var array1 = [1, 2, 3]; console.log(array1.includes(2)); // expected output: true 原文地址:https://www.cnblogs.com/mlh1421/p/10008831.html

ES7/8新特性学习随笔

随着每年EcmaScript都会为js带来一些新特性,带来更多美化的编程体验,今天就走进一下es2016/2017所带来的新特性 ES7新特性 includes() 指数操作符 ES8新特性 async/await Object.values() Object.entries() Object.getOwnPropertyDescriptors() String padding 函数参数列表结尾允许逗号 ? 开始学习ES7 1. Array.prototype.includes() includ

ES6、ES7、ES8、ES9、ES10新特性一览

ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言.目前JavaScript使用的ECMAScript版本为ECMA-417.关于ECMA的最新资讯可以浏览 ECMA news查看. ECMA规范最终由TC39敲定.TC39由包括浏览器厂商在内的各方组成,他们开会推动JavaScript提案沿着一条严格的发展道路前进. 从提案到入选ECMA规范主要有以下几个阶段: Stage 0: strawman——最初想法的提交. Stage 1: proposal(提案)——

ES7的新特性

ES7的新特性 ES7 特性: 1.Array.prototype.includes2.Exponentiation Operator(求幂运算) 一,Array.prototype.includes Array.prototype.includes用法容易和简单.它是一个替代indexOf,开发人员用来检查数组中是否存在值,indexOf是一种尴尬的使用,因为它返回一个元素在数组中的位置或者-1当这样的元素不能被找到的情况下.所以它返回一个数字,而不是一个布尔值.开发人员需要实施额外的检查.在

TypeScript系列1-1.5版本新特性

1. 简介 随着PC端快速向移动端迁移,移动(体验)优先的概念也越来越响.由于ReactJS目前移动端仅仅支持iOS,因此移动端Web开发框架只能选择: AngularJS/Angula2 + Ionic框架 + Cordova.想要学习好Angula2以及阅读其代码, 就必须了解和学习TypeScript,也因此需要学习好ES6以及Web Component.近期将开始学习TypeScript语言. 下面先看看TypeScript语言的发展: 鉴于JavaScript这种脚本语言很难应用于大规

ES8新特性

ES8已经正式发布了,其新特性有:字符串填充.异步函数与共享内存与原子操作等.本文对着三个特性进行深入的解析.当然还有其他的一些特性. 1.字符串填充 ES8中为字符串添加了新的内置函数padStart().padEnd(),主要用于固定字符串的长度并且用指定的字符进行填充,以padStart为例,其例子如下: 1 var sourceStr="example", 2 targetLen=5, 3 padStr="foobar"; 4 sourceStr.padSt

ES6语法的新特性

ES6 就是ECMAScript 6是新版本JavaScript语言的标准.虽然目前已经更新到ES7,但是很多浏览器还不知处ES7语法,该标准仍在更新中,但目前部门网站都指出ES6的语法.目前ES6也是使用最多的最新的javaScript语言标准.要查看ES6的支持情况请点此. 在2009年ES5问世以后,javaScript的标准就一直没有更新.从那时起ES标准委员会就已经开始筹划新的ES标准,在2015年发布了ES6.ES6是ECMAScript 的第6个版本. 经过持续几年的磨砺,它已成为

web新特性 之 WebSocket

详情参见:你真的了解WebSocket吗?     WebSocket系列教程   HTML5新特性之WebSocket WebSocket协议是基于TCP的一种新的协议.WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符.它实现了浏览器与服务器全双工(full-duplex)通信.其本质是保持TCP连接,在浏览器和服务端通过Socket进行通信. 服务端与客户端的连接不断开,实现全双工的操作.及服务端或是客户端都会给对方发送消息. WebSocke