旧的 JS 版本以数字命名:ES5 (2009) 和 ES6 (2015)。
从 2016 年开始,版本按年份命名:ECMAScript 2016、2017、2018、2019,...
本章介绍 ECMAScript 2017 中的新功能:
ECMAScript 2017 向 JavaScript 添加了两个字符串方法:padStart()
和padEnd()
支持字符串开头和结尾的填充。
let text = "5";
text = text.padStart(4,0);
亲自试一试 »
let text = "5";
text = text.padEnd(4,0);
亲自试一试 »
自 2017 年 4 月起,所有现代浏览器都支持 JavaScript 字符串填充:
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Mar 2017 | Apr 2017 | Aug 2016 | Sep 2016 | Mar 2017 |
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 |
Jun 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
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 |
Oct 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
async function myDisplay() {
let myPromise = new Promise(function(myResolve, myReject) {
setTimeout(function() { myResolve("I love You !!"); }, 3000);
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
Firefox 和 Chrome 是第一批支持异步 JavaScript 函数的浏览器:
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Dec 2016 | Apr 2017 | Mar 2017 | Sep 2017 | Dec 2016 |
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!