JavaScript ECMAScript 2017
JavaScript 2017 新特性
| 功能 | 描述 | |
|---|---|---|
| String padStart() | 填充字符串开头 | |
| String padEnd() | 填充字符串结尾 | |
| Object entries() | 返回对象的键值对数组 | |
| Object values() | 返回对象的值数组 | |
| async 和 await | 简化 Promise 的处理 | |
| 尾随逗号 | 允许在接受逗号分隔的值列表中使用尾随逗号 | |
| getOwnProperty 描述符 |
返回一个包含对象所有自身属性描述符的对象 |
浏览器支持
自 2017 年 9 月起,所有现代浏览器均支持 JavaScript 2017:
| Chrome 58 |
Edge 15 |
Firefox 52 |
Safari 11 |
Opera 45 |
| 2017年4月 | 2017年4月 | 2017年3月 | 2017年9月 | 2017年5月 |
JavaScript 字符串填充
ECMAScript 2017 为 JavaScript 添加了两个字符串方法:padStart()和 padEnd(),用于支持字符串开头和结尾的填充。
示例
let text = "5";
text = text.padStart(4,0);
亲自试一试 »
let text = "5";
text = text.padEnd(4,0);
亲自试一试 »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));亲自试一试 »JavaScript 对象值
Object.values() 类似于 Object.entries(),但它返回的是一个包含对象值的一维数组:
示例
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
let text = Object.values(person);亲自试一试 »JavaScript 异步函数
等待超时
async function myDisplay() {
let myPromise = new Promise(function(myResolve, myReject) {
setTimeout(function() { myResolve("I love You !!"); }, 3000);
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
JavaScript 尾随逗号
JavaScript 允许在任何接受逗号分隔的值列表的地方使用尾随逗号。
在数组和对象字面量、函数调用、参数、导入和导出中。
示例
function myFunc(x,,,) {};
const myArr = [1,2,3,4,,,];
const myObj = {fname: John, age:50,,,};
