ES7的两个新特性

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,750评论 0 4
  • 一、ES6简介 ​ 历时将近6年的时间来制定的新 ECMAScript 标准 ECMAScript 6(亦称 ...
    一岁一枯荣_阅读 6,238评论 8 25
  • ECMAScript6 的开发花费了四年之久,之后TC-39决定缩短开发周期,采用年度周期来发布语言的新特性...
    Alex灌汤猫阅读 3,436评论 0 1
  • 世人皆醒我独醉,醉卧此生何其乐?可恨世事不得醉,披蓑立斗寻桃源。 ——奕亭原创
    奕亭阅读 382评论 2 5
  • 做什么朋友,做我女朋友吧! 文:港霸 双十一之前,身边的几个小伙伴蠢蠢欲动,纠结于到底要不要从友情升级为爱情。 “...
    港霸阅读 658评论 0 1

友情链接更多精彩内容