????喜大普奔,ES2019登场
栏目: JavaScript · 发布时间: 5年前
内容简介:就在刚4个小时前,TC39将以下特性加入到了 ES2019 中。让我们来看看这些新的特性给我们带来了什么样的改变。:arrow_right: Array#{flat,flatMap}:arrow_right: Object.fromEntries
就在刚4个小时前,TC39将以下特性加入到了 ES2019 中。让我们来看看这些新的特性给我们带来了什么样的改变。
ES2019 新特性:
:arrow_right: Array#{flat,flatMap}
:arrow_right: Object.fromEntries
:arrow_right: String#{trimStart,trimEnd}
:arrow_right: Symbol#description
:arrow_right: try { } catch {} // optional binding
:arrow_right: JSON ⊂ ECMAScript
:arrow_right: well-formed JSON.stringify
:arrow_right: stable Array#sort
:arrow_right: revised Function#toString
JSON ⊂ ECMAScript (JSON superset)
行分隔符(U + 2028)和段分隔符(U + 2029)符号现在允许在字符串文字中,与JSON匹配。 以前,这些符号在字符串文字中被视为行终止符,因此使用它们会导致SyntaxError异常。
well-formed JSON.stringify
更加友好的 JSON.stringify (修复了对于一些超出范围的 unicode 展示错误的问题。)
如果输入 Unicode 格式但是超出范围的字符,在原先JSON.stringify返回格式错误的Unicode字符串:
JSON.stringify('\uD800'); // → '"�"' 复制代码
现在实现了一个改变JSON.stringify的 第3阶段提案 ,因此它为其输出转义序列,使其成为有效Unicode(并以UTF-8表示):
JSON.stringify('\uD800'); // → '"\ud800"' 复制代码
stable Array#sort
在以前,sort 函数中,10个以上元素的数组 V8 使用不稳定的QuickSort(快排。现在,使用稳定的TimSort算法。)
TimSort算法: en.wikipedia.org/wiki/Timsor…
revised Function#toString
Function.prototype.toString() 现在返回精确字符,包括空格和注释。原先和现在的比较:
// Note the comment between the `function` keyword // and the function name, as well as the space following // the function name. function /* a comment */ foo () {} // Previously: foo.toString(); // → 'function foo() {}' // ^ no comment // ^ no space // Now: foo.toString(); // → 'function /* comment */ foo () {}' 复制代码
Array #{flat, flatMap}
数组降维,递归地将数组展平到指定的深度,默认为1。
// Flatten one level: const array = [1, [2, [3]]]; array.flat(); // → [1, 2, [3]] // Flatten recursively until the array contains no more nested arrays: array.flat(Infinity); // → [1, 2, 3] 复制代码
[2, 3, 4].flatMap((x) => [x, x * 2]); // → [2, 4, 3, 6, 4, 8] 复制代码
Object.fromEntries
Object.fromEntries(Object.entries(object))≈ 对象
它类似于Lodash的_.fromPairs。
String#{trimStart,trimEnd}
前后的空白符可以指定一边去除。
const string = ' hello world '; string.trimStart(); // → 'hello world ' string.trimEnd(); // → ' hello world' string.trim(); // → 'hello world' 复制代码
Symbol.prototype.description
通过工厂函数Symbol()创建符号时,您可以选择通过参数提供字符串作为描述:
const sym = Symbol('The description'); 复制代码
以前,访问描述的唯一方法是将符号转换为字符串:
assert.equal(String(sym), 'Symbol(The description)'); 复制代码
现在引入了getter Symbol.prototype.description以直接访问描述:
assert.equal(sym.description, 'The description'); 复制代码
以上所述就是小编给大家介绍的《????喜大普奔,ES2019登场》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- WWDC 2019:macOS Catalina 登场
- Newbe.ObjectVisitor 0.1.4 发布,轻装登场
- Create React App 2.0 华丽登场
- 小诺 layui 版本 v1.4 已发布,在线文档功能强势登场!
- 首发 | PlatON测试网络贝莱世界今日竣工,可验证计算压轴登场
- [图]面向小微企业 Windows Server 2019 Essentials即将登场
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。