ES7的两个新特性

作者: 人类进化又没带我 | 来源:发表于2017-11-29 13:34 被阅读67次
1.Array.prototype.includes (由 Domenic Denicola 和 Rick Waldron 提议的 ECMAScript 2016 新特性 )
2.求幂运算符(**)

概述

> ['a', 'b', 'c'].includes('a')
true
> ['a', 'b', 'c'].includes('d')
false

数组方法 includes

数组方法 includes 有以下签名:

Array.prototype.includes(value : any) : boolean

如果某个数组中包含 value 这个元素,则返回true,否则为false。

> ['a', 'b', 'c'].includes('a')
true
> ['a', 'b', 'c'].includes('d')
false

includes 方法与 indexOf 相似 – 以下两个表达式几乎是等效的

arr.includes(x)
arr.indexOf(x) >= 0

主要的区别在于 includes() 可以查找 NaN,而 indexOf() 不能:

> [NaN].includes(NaN)
true
> [NaN].indexOf(NaN)
-1

includes 不区分+0-0这是几乎所有的JavaScript都是如此工作的):

> [-0].includes(+0)
true

TypedArray 同样有 includes() 方法:

let tarr = Uint8Array.of(12, 5, 3);
console.log(tarr.includes(5)); // true

常见问题

  • **为什么这个方法叫做 includes而不是contains? 后者(即:contains)是最初的选择,但是这将破坏了网上现有的代码( 例如:MooTools 将此方法添加到了 Array.prototype 中)。
  • 为什么这个方法叫做 includes 而不是 has?
    因为has已被用作关键字了(Map.prototype.hasincludes用于元素(String.prototype.includes)。集合的元素既可以被看作是键和也可以被看作值,这就是为什么有一个 Set.prototype.has(而不是includes )。
  • ES6 方法 String.prototype.includes适用于字符串,而不是字符。那么对于 Array.prototype.includes 方法而言,是不是存在不一致问题?**如果数组的 includes方法和字符串的 includes 方法工作机制一样,它应该接受数组,而不是单个元素。但是两个includes方法与 indexOf方法的例子保持一致;作为一般情况,字符被视为特殊情况和任意长度的字符串。

求幂运算符(**)是由 Rick Waldron 提议的一个 ECMAScript 2016 (ES 7) 新特性。

概述

6 ** 2
36
用于求幂的中缀运算符

** 是一个用于求幂的中缀运算符:

x ** y

下面的代码产生相同的结果:

Math.pow(x, y)

示例:

let squared = 3 ** 2; // 9
let num = 3;
num **= 2;
console.log(num); // 9

青团社招聘:

招聘岗位:高级前端开发工程师P5及以上
坐标杭州市余杭区文一西路1380号金之源大厦11层

简历投递到:hr@qtshe.com || haochen@qtshe.com

职位描述:

1、建设工具、提炼组件、抽象框架,促进前端工程化、服务化,持续提升研发效率,保障线上产品质量

2、构建H5/PC应用基础设施,主导建设前端各种发布/监控等平台,指导落实解决方案

3、持续优化前端页面性能,维护前端代码规范,钻研各种前沿技术和创新交互,增强用户体验、开拓前端能力边界

相关文章

  • Math方法和es新特性

    es6常用 es7新特性 es8新特性 es9新特性 es10新特性

  • ES7及ES8新特性

    ES7新特性 (ECMAScript2016 新特性) 一、Array 1、Array.prototype.inc...

  • ES7,ES8简单介绍

    ES7新特性: Array.prototype.includes Array.prototype.includes...

  • es7两个新特性

    最近我写了一篇博客文章,甚至做一篇关于ES6/ES2015在线课程。你猜怎么样?TC39-JavaScript最强...

  • ES7的两个新特性

    1.Array.prototype.includes (由 Domenic Denicola 和 Rick Wal...

  • es7新增特性

    自es7发布以来,有两个新特性尤为突出: 1.数组中查找元素 语法:array.includes(value,in...

  • ES7新特性

    ES7在ES6的基础上添加了三项内容:求幂运算符(**)Array.prototype.includes()方法、...

  • es7新特性-babel配置

    es7 新特性 npx babel-upgrade --write 覆盖 preset-stage-0 配置 ba...

  • ES6~ES7/ES8发生的变化

    ES7新特性 ES7在ES6的基础上添加了三项内容:求幂运算符()、Array.prototype.include...

  • ES8、ES9和ES10新特征

    相信很多人已经用过ES6或者ES7的部分新特性,比如class、promise、解构等等,也对ES6、ES7比较熟...

网友评论

    本文标题:ES7的两个新特性

    本文链接:https://www.haomeiwen.com/subject/dvsubxtx.html