喜大普奔,es2019登场

简介: 就在刚4个小时前,TC39将以下特性加入到了 ES2019 中。让我们来看看这些新的特性给我们带来了什么样的改变。

就在刚4个小时前,TC39将以下特性加入到了 ES2019 中。让我们来看看这些新的特性给我们带来了什么样的改变。


image.png


ES2019 新特性:



➡️ Array#{flat,flatMap}

➡️ Object.fromEntries

➡️ String#{trimStart,trimEnd}

➡️ Symbol#description

➡️ try { } catch {} // optional binding

➡️ JSON ⊂ ECMAScript

➡️ well-formed JSON.stringify

➡️ stable Array#sort

➡️ revised Function#toString


JSON ⊂ ECMAScript (JSON superset)


行分隔符(U + 2028)和段分隔符(U + 2029)符号现在允许在字符串文字中,与JSON匹配。 以前,这些符号在字符串文字中被视为行终止符,因此使用它们会导致SyntaxError异常。


well-formed JSON.stringify


更加友好的 JSON.stringify (修复了对于一些超出范围的 unicode 展示错误的问题。)

如果输入 Unicode 格式但是超出范围的字符,在原先JSON.stringify返回格式错误的Unicode字符串:


image.png


现在实现了一个改变JSON.stringify的第3阶段提案,因此它为其输出转义序列,使其成为有效Unicode(并以UTF-8表示):


image.png


stable Array#sort


在以前,sort 函数中,10个以上元素的数组 V8 使用不稳定的QuickSort(快排。现在,使用稳定的TimSort算法。)


TimSort算法: https://en.wikipedia.org/wiki/Timsort


revised Function#toString


Function.prototype.toString()现在返回精确字符,包括空格和注释。原先和现在的比较:


image.png


Array #{flat, flatMap}


数组降维,递归地将数组展平到指定的深度,默认为1。


image.png


Object.fromEntries


Object.fromEntries(Object.entries(object))≈ 对象


它类似于Lodash的_.fromPairs。


image.png


String#{trimStart,trimEnd}


前后的空白符可以指定一边去除。


image.png

Symbol.prototype.description


通过工厂函数Symbol()创建符号时,您可以选择通过参数提供字符串作为描述:


image.png


以前,访问描述的唯一方法是将符号转换为字符串:


image.png


现在引入了getter Symbol.prototype.description以直接访问描述:


image.png


try {} catch {}


现在try {} catch {} 有了更加简便的方法,变成了可选型。


在以前


image.png


现在


image.png


更多提案:



https://github.com/tc39/proposals/blob/master/finished-proposals.md

相关文章
|
28天前
|
数据采集 人工智能 测试技术
还在死磕AI咒语?北大-百川搞了个自动提示工程系统PAS
【10月更文挑战第4天】北京大学和百川智能研究人员开发了一种名为PAS的即插即用自动提示工程(APE)系统,利用高质量数据集训练的大型语言模型(LLMs),在基准测试中取得了显著成果,平均提升了6.09个百分点。PAS仅需9000个数据点即可实现顶尖性能,并能自主生成提示增强数据,提高了灵活性和效率。尽管存在训练数据质量和提示多样性等方面的潜在局限性,PAS仍为解决提示工程挑战提供了有前景的方法,有望提升LLM的可用性和有效性。论文详见:https://arxiv.org/abs/2407.06027。
39 3
|
3月前
|
开发者 前端开发 Apache
【绝不错过!】揭秘Wicket大神级插件,带你飞越编程极限,探索Web应用开发新大陆!
【8月更文挑战第31天】Apache Wicket是一个成熟的Java Web框架,以其组件化体系结构、直观的API及对MVC的支持著称。其活跃社区贡献了大量插件和扩展,显著提升了Wicket的功能性。本文推荐几个实用插件,如**Wicket Ajax Support**,可轻松添加Ajax功能,提升用户体验;**Bootstrap for Wicket**则将Bootstrap与Wicket结合,美化应用界面。
31 0
星际争霸之小霸王之小蜜蜂(三)--重构模块
星际争霸之小霸王之小蜜蜂(三)--重构模块
|
存储 监控 JavaScript
保熟的TS知识,拜托,超快超酷的好吗
这一步对于很多人来说是最简单的一步,也是最难的一步,说简单是因为这确确实实仅是入门的一步,就是一个环境配置,说难则是因为很多人无法跨出这一步,当你跨出这一步之后,你会发现后面的真的学得很快很快,现在,就让我们一起跨出这一步吧~
70 0
|
JavaScript 前端开发 计算机视觉
由一篇ES6-Class科普文章引发的“惨案”
让我们就开始惨案的解密过程吧。 首先,我们不按常规去思考上面的疑惑,我们需要在破案之前,需要一些准备工具。 首先让人很刺眼的一个是:Object.defineProperty。既然遇到了,我们就来会会他。
112 0
|
JavaScript 程序员 开发者
Faker.js 作者“删库跑路”引开源圈“震动”:该开源项目现已被社区控制
Faker.js 作者“删库跑路”引开源圈“震动”:该开源项目现已被社区控制
149 0
Faker.js 作者“删库跑路”引开源圈“震动”:该开源项目现已被社区控制
|
JavaScript
冇事来学系--Vue2.0 组件开发详讲(下)
组件的自定义属性props props节点是和data、methods等同级的节点,值是一个数组
130 0
|
Web App开发 自然语言处理 JavaScript
细读 ES6 | let 真的会提升吗?
本将会从 ES5 中一些怪诞的行为出发,然后再到 ES6 中的 let、const 是否会“提升”的讨论。
170 0
细读 ES6 | let 真的会提升吗?
|
存储 JavaScript 前端开发
冇事来学系--Vue2.0 组件开发详讲(上)
组件化开发 根据封装的思想,把页面上可重复用的UI结构封装为组件,从而方便项目的开发和维护 组件-->实现应用中局部功能代码和资源的集合
170 0
ZCMU - 1605: 大一下之小试身手
ZCMU - 1605: 大一下之小试身手
69 0