热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【译】ECMAScript2016:Array.prototype.includes和幂运算

转载文章,文章经LiteCodes授权,转载至本博客。原文地址:【译】ECMAScript2016:Array.protot

转载文章,文章经 LiteCodes 授权,转载至本博客。

原文地址:【译】ECMAScript 2016:Array.prototype.includes 和幂运算

ECMAScript 2016 将包含的新特性仅有 Array.prototype.includes 和幂运算。异步方法将会推迟道明年。

ECMAScript 标准化过程包含了四个主要阶段:提案、草案、候选、完成。新的特性必须通过上述四个阶段,才能够添加至 ECMAScript 标准中。所以,只有在“完成”阶段的特性才会被添加至下一个 Javascript 版本中。虽然有22个特性在各种阶段中,但只有两个处于完成阶段:Array.prototype.includes 和幂运算。

Array.prototype.includes

根据提案所述,下面一段代码描述了如何使用该特性:

assert([1, 2, 3].includes(2) === true);
assert([
1, 2, 3].includes(4) === false);assert([1, 2, NaN].includes(NaN) === true);assert([1, 2, -0].includes(+0) === true);
assert([
1, 2, +0].includes(-0) === true);assert(["a", "b", "c"].includes("a") === true);
assert([
"a", "b", "c"].includes("a", 1) === false);

提案中最初的语法是   Array.prototype.contains  ,委员会将  contains  修订为  includes  ,因为前者不是“Web 兼容”,将会导致很多网站出现问题。

幂运算

幂运算运算符语法如下:

运算符: var1 ** var2

一个简单的例子:

let cubed = 2 ** 3; // 2*2*2

ECMAScript 2016的发布相较于 ES 2015(ES6)而言小了很多。其原因是,ES 5 于2009年发布,而 ES6于2015年发布。委员会认为,如果可能的话,每年发布一个新版本要优于5至6年才发布一个版本。一个特性能够通过最终阶段的一个条件是,至少“两个兼容的实现能够通过测试”,这是其他特性没能通过最终阶段的主要原因。关于成功进入“完成”阶段的两个特性,ECMAScript 标准编纂者 Brian Terlson(@bterlson)告诉 InfoQ:

 ChakraCore 已经实现了 Array.prototype.includes(并且我们很快会将其从实验模式中移出,详情参考:https://github.com/Microsoft/ChakraCore/issues/23)。在实验模式下,我们同样实现了幂运算。SpiderMonkey 和 V8 同样实现了 Array.prototype.includes,并且 SpiderMonkey 实现了幂运算。因此,从标准制定流程的角度看,这些特性已经足够完善。但是,实现这些特性所得到的反馈,仅仅是在小范围内获得的。

在某些情况下,针对某个特性,TC39 委员会可以要求有两个以上的实现后,才允许该特性通过最终阶段。正如异步方法,虽然是一个令人期待的功能,但依然停留在候选阶段。Terlson 解释道:

异步方法确实不在 ES2016 中。TC39 委员会对该特性的实现并没有明确的要求(详情参见:https://tc39.github.io/process-document/),所以这个特性的裁决将?。异步方法特性已经拥有了超过两个能够彼此协作的实现(Chakra 实现该特性,除了 TypeScript 和 Babel 外),但是像异步方法这种特性,委员会希望能够确保没有浏览器实现会导致问题(如网站崩溃或性能问题等)。所以,在它纳入 ECMAScript 标准前,委员会希望看到更多其他的能够彼此协作的浏览器实现。

 

其他位于“候选”阶段的特性有:

  • SIMD.JS – SIMD APIs
  • Object.values/Object.entries
  • String padding
  • 在方法参数列表和调用后跟随逗号
  • Object.getOwnPropertyDescriptors

“很多其他第三阶段的特性也有可能赶得上 ES2017,但也只是可能,无法保证。” Terlson 补充说。

转:https://www.cnblogs.com/rainisic/articles/5203159.html



推荐阅读
  • Flow 生态案例学习 | Emerald City为Flow上DAO、教育和开发铺平道路
    原文链接:https://www.onflow.org/post/emer ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • TS 类型体操:图解一个复杂高级类型
    ts,类型,体操,图解,一 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
拍友2502911223
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有