ES2016

栏目: JavaScript · 发布时间: 6年前

内容简介:一个数组包含性检测方法,一个幂运算符。没了,ES2016就这两个新特性,还都是锦上添花的东西P.S.更多过审特性,见

一.特性概览

ES2016 (也就是ES7)发布于2016年6月, 仅包含2个新特性

一个数组包含性检测方法,一个幂运算符。没了,ES2016就这两个新特性,还都是锦上添花的东西

P.S.更多过审特性,见 Finished Proposals

二.Array.prototype.includes

数组的 includes 方法,具体如下:

// 返回true | false,表示包含不包含
// 可选参数fromIndex表示从该index开始找
//    默认是0,负数表示倒数第几个(array.length + fromIndex)
array.includes(item, [fromIndex])

用来确定数组中是否包含指定元素,类似于(但 不等价 ):

array.indexOf(item) !== -1

二者之间存在细微的差异:

  • NaN: [NaN].includes(NaN) === true[NaN].indexOf(NaN) === -1

  • 稀疏数组: [1, , 3].includes(undefined) === true[1, , 3].indexOf(undefined) === -1

简言之, includes 能够处理 NaN ,并且不会跳过稀疏数组中的空位(也就是说不判断数组中的元素是否存在)

具体的, includes 比较相等性时采用 SameValueZero 算法:

  • 对象仅比较引用

  • 基本值比较类型和值

  • 值比较中存在2个特例, +0-0 相等, NaNNaN 相等

三.Exponentiation operator

幂运算符,具体如下:

// 底数 ** 指数
base ** exponent

另外,还提供了 **=

let n = 2;
// 运算并赋值
n **= 4;
n; // => 16

完全等价Math.pow(base, exponent) ,包括这些特殊case:

NaN ** 0;       // => 1
Infinity ** 0;  // => 1
-5 ** NaN;      // => NaN
NaN ** NaN;     // => NaN

没错,完全等价,因为毕竟幂运算是无法重新定义的(若不一致会引发混乱)

四.为什么这一版这么小?

与ES发版流程有关,ES新特性提议分为5个阶段:

  • stage 0(Strawman):初稿(比Draft更草一些)

  • stage 1(Proposal):提议

  • stage 2(Draft):草案

  • stage 3(Candidate):候选提议

  • stage 4(Finished):过审提议

特性提议随时可以提,多线并行审核推进,但 发版周期是固定的

  • 2月1日:产出候选草案(Candidate Draft)

  • 2-3月:60天的修订筛选期(royalty-free opt-out period)

  • 3月TC39会议:合入stage 4(过审的)提议,校准最终语义,并从主分支迁出新规范版本,之后只接受编辑更改

  • 4-6月:ECMA CC与ECMA GA审核期

  • 7月:由ECMA大会(ECMA General Assembly)批准新标准

每年7月发版,把新过审的特性提议带上去 ,所以一个版本包含的新特性数量取决于这一年有多少特性过审了

这样一方面能够保证规范发布的特性都经过广泛审核确认了,另一方面保持每年一版的频繁节奏,避免再出现ES2015那样的大版本(6年憋一版)

P.S.关于Ecma TC39的ES发版流程的更多信息,见 The TC39 Process

参考资料


以上所述就是小编给大家介绍的《ES2016》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Game Engine Architecture, Second Edition

Game Engine Architecture, Second Edition

Jason Gregory / A K Peters/CRC Press / 2014-8-15 / USD 69.95

A 2010 CHOICE outstanding academic title, this updated book covers the theory and practice of game engine software development. It explains practical concepts and techniques used by real game studios,......一起来看看 《Game Engine Architecture, Second Edition》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具