最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

TC39 敲定 ECMAScript 2018 特性集

  • 2018-02-06
  • 本文字数:990 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

1 月 23 日至 25 日的 TC39 会议敲定了 ES2018 的特性集。ES2018 是对 ECMAScript 语言规范的最新修订。这次更新中新添加的特性包括异步迭代器、用于对象解构(Object Destructuring)和对象字面量(Object Literal)的restspread操作符,并大幅改进了正则表达式。此外,还对 Promise 和模板字面量(Template Literal)做了进一步改进。

新敲定的 Asynchronous Iteration 功能,原生支持在 JavaScript 中对异步获取的数据做迭代。异步获取方式包括 Node.js 中的文件读取、浏览器中的 WebSocket 等。该特性在扩展了已有的生成器和循环功能的同时,在语言中引入了两个新的关键字,asyncawait。在 Hackernoon 的一篇帖子中,Mostafa Gaafar 解释了新语法的价值所在:

async/await无疑是 JavaScipt 在过去数年中添加的最具革命性的特性之一。该特性可使开发人员认识到一个语法混乱的 Promise 是什么样的,并为此提供了直观的替代解决方案。

Asynchronous Iteration 可使用 Babel 做源码到源码的编译(Transpilable),并在 Node.js 7.6 之后的版本、Chrome、Firefox 和 Safari 技术预览版中原生提供。

新规范中还添加了支持对象字面量的 spread/rest语法。自 ES2015 以来,在数组上就已经支持该语法。此次更新是对该语法的一个泛化。在 Google 开发者博客上,Mathias Bynens 发表了一篇介绍性文章。文章解释说“在很多情况下, spread属性是Object.assign()的一种更优雅的替代实现”。该特性同样可使用 Babel 做源码到源码的编译,并在 Node 8.6 以后的版本、Chrome、Firefox 和 Safari 技术预览版中提供原生支持。

对于已有的功能而言,新规范中的最大更改是对正则表达式的改进。ECMAScript 2018 为正则表达式添加了一系列新特性。这些特性已经在其它一些语言中存在,但是尚未在JavaScript 中得到支持。其中包括DOTALL 模式、后行断言(Lookbehind Assertions)、命名捕获组(named capture group)和Unicode 属性转义(Property Escape)等。

最后要介绍的2018 规范中的更改,就是对模板字面量功能的修改,允许了一些以前是非法的字符序列。如果开发人员想要对最终敲定的提案眼见为实,可从GitHub 中检出TC39 的最终建议列表,或是跟踪TC39 之前所有进入正式流程的提案

查看英文原文: TC39 Finalizes Feature Set for ECMAScript 2018

2018-02-06 18:001674
用户头像

发布了 391 篇内容, 共 126.9 次阅读, 收获喜欢 255 次。

关注

评论

发布
暂无评论
发现更多内容

数据库每日一题---第6天:删除重复的电子邮箱

知心宝贝

数据库 程序员 前端 后端 6月月更

在 Vue3 + Element Plus 中生成动态表格,动态修改表格,多级表头,合并单元格

蒋川

低代码 Vue3 组件 表格 Element Plus

数据结构与算法之时间复杂度与空间复杂度

未见花闻

6月月更

LabVIEW控制Arduino采集DHT11温湿度数值(进阶篇—4)

不脱发的程序猿

单片机 LabVIEW VISA Arduino Uno 采集DHT11温湿度数值

在线JSON转XML工具

入门小站

工具

Web3的布局潜力,STI处于价值洼地

EOSdreamer111

3分钟初识网络功能虚拟化NFV

穿过生命散发芬芳

6月月更 NFV

AQUANEE:"P2E "的真正含义

EOSdreamer111

不止于观测|阿里云可观测技术峰会正式上线

阿里巴巴云原生

阿里云 开源 云原生 可观测峰会 行业实践

《阅读的方法》:怎么找阅读的乐趣?

郭明

读书笔记

关于volitile相关知识

北洋

6月月更

选择数字资产托管人时,要问的 6 个问题

BlockChain先知

架构实战营模块 3 作业

Naoki

架构实战营

vue指令-4

小恺

6月月更

linux去掉空行的几种方法

入门小站

Linux

Android App首页主流框架搭建

yechaoa

android kotlin 6月月更 material design

学生管理系统详细架构

intelamd

Redux之利用 distinct 属性进行性能优化

岛上码农

flutter ios 安卓开发 跨平台应用 6月月更

RPA能否创造新业态?如何优化组织结构?如何助力疫情中的企业?

王吉伟频道

人工智能 RPA 机器人流程自动化 机器人开发 爱死机

GameFi如何破圈,AQUANEE靠真正“P2E”展现风采

股市老人

控制并发线程数的Semaphore

急需上岸的小谢

6月月更

java面向对象之多态(向上转型和向下转型)

写代码两年半

面向对象 javase 多态 6月月更

跨境电商如何通过打好数据底座,实现低成本稳步增长

OceanBase 数据库

跨境电商 oceanbase

GameFi如何破圈,AQUANEE靠真正“P2E”展现风采

EOSdreamer111

在线摩斯密码在线翻译转换工具

入门小站

工具

外包学生管理系统架构文档

Asura

在这些根技术里,读懂华为的“三观”

脑极体

Spring Data JPA 极速入门

翊君

spring data 6月月更

市场监管总局出手监督618电商促销节:电商促销节存在哪些诟病

石头IT视角

Web3的布局潜力,STI处于价值洼地

股市老人

外包管理系统架构设计

地下地上

架构实战营

TC39敲定ECMAScript 2018特性集_JavaScript_Kevin Ball_InfoQ精选文章