ECMAScript 2017
JavaScript 版本号
旧的 ECMAScript 版本用数字命名:ES5 和 ES6。
从 2016 年开始,版本用年份命名:ES2016、2018、2020...
ECMAScript 2017 中的新功能
本章介绍 ECMAScript 2017 中的新功能
- JavaScript 字符串填充
- JavaScript 对象 entries()
- JavaScript 对象 values()
- JavaScript 异步和等待
- 函数中的尾部逗号
- JavaScript Object.getOwnPropertyDescriptors
ES 2017 自 2017 年 9 月起在所有现代浏览器中完全支持
Chrome 57 | Edge 15 | Firefox 48 | Safari 11 | Opera 44 |
2017 年 3 月 | 2017 年 4 月 | 2016 年 8 月 | 2017 年 9 月 | 2017 年 3 月 |
JavaScript 字符串填充
ECMAScript 2017 为 JavaScript 添加了两个字符串方法:padStart()
和 padEnd()
,用于支持在字符串开头和结尾进行填充。
JavaScript 字符串填充自 2017 年 4 月起在所有现代浏览器中支持
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
2017 年 3 月 | 2017 年 4 月 | 2016 年 8 月 | 2016 年 9 月 | 2017 年 3 月 |
JavaScript 对象条目
ECMAScript 2017 为对象添加了 Object.entries()
方法。
Object.entries()
返回一个对象中键值对的数组
示例
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
let text = Object.entries(person);
亲自尝试 »
Object.entries()
使得在循环中使用对象变得简单
示例
const fruits = {Bananas:300, Oranges:200, Apples:500};
let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "<br>";
}
亲自尝试 »
Object.entries()
也使将对象转换为映射变得简单
示例
const fruits = {Bananas:300, Oranges:200, Apples:500};
const myMap = new Map(Object.entries(fruits));
亲自尝试 »
Object.entries()
自 2017 年 3 月起在所有现代浏览器中支持
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
2016 年 6 月 | 2016 年 8 月 | 2016 年 6 月 | 2017 年 3 月 | 2016 年 10 月 |
JavaScript 对象值
Object.values()
类似于 Object.entries()
,但返回一个包含对象值的单维数组
示例
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
let text = Object.values(person);
亲自尝试 »
Object.values()
自 2017 年 3 月起在所有现代浏览器中支持
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
2016 年 10 月 | 2016 年 8 月 | 2016 年 6 月 | 2017 年 3 月 | 2016 年 10 月 |
JavaScript 异步函数
等待超时
async function myDisplay() {
let myPromise = new Promise(function(myResolve, myReject) {
setTimeout(function() { myResolve("我爱你!!"); }, 3000);
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
异步函数自 2017 年 9 月起在所有现代浏览器中支持
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
2016 年 12 月 | 2017 年 4 月 | 2017 年 3 月 | 2017 年 9 月 | 2016 年 12 月 |
JavaScript 尾随逗号
JavaScript 允许在接受逗号分隔的值列表的任何位置使用尾随逗号。
例如在数组和对象字面量、函数调用、参数、导入和导出中。
示例
function myFunc(x,,,) {};
const myArr = [1,2,3,4,,,];
const myObj = {fname: John, age:50,,,};
自 2017 年 5 月起,所有现代浏览器都支持尾随逗号。
Chrome 58 | Edge 14 | Firefox 52 | Safari 10 | Opera 45 |
2017 年 4 月 | 2016 年 8 月 | 2017 年 3 月 | 2016 年 9 月 | 2017 年 5 月 |