ECMAScript 2017
JavaScript 命名约定从 ES1、ES2、ES3、ES5 和 ES6 开始。
但, ECMAScript 2016 和ECMAScript 2017 并不叫ES7和ES8。
自 2016 年起,新版本按年份命名(ECMAScript 2016 / 2017 / 2018)。
ECMAScript 2017 中的新特性
本章介绍了 ECMAScript 2017 中的新特性:
- JavaScript 字符串填充
- JavaScript 对象.entries
- JavaScript 对象.值
- JavaScript 异步函数
- JavaScript 共享内存
JavaScript 字符串填充
ECMAScript 2017 增加了两个 String 方法: padStart
和padEnd
支持在字符串开头和结尾进行填充。
Internet Explorer 不支持字符串填充。
Firefox 和 Safari 是第一批支持 JavaScript 字符串填充的浏览器:
Chrome 57 | 边缘 15 | Firefox 48 | Safari 10 | 歌剧 44 |
2017 年 3 月 | 2017 年 4 月 | 2016 年 8 月 | 2016 年 9 月 | 2017 年 3 月 |
JavaScript 对象条目
ECMAScript 2017 增加了新的 Object.entries
方法到对象。
Object.entries() 方法返回对象中的键/值对的数组:
例子
const 人 = {
名字:“约翰”,
姓氏:“Doe”,
年龄 : 50,
眼睛颜色:“蓝色”
};
document.getElementById("demo").innerHTML = Object.entries(person);
亲自尝试 »
Object.entries() 使得在循环中使用对象变得简单:
例子
const 水果 = {香蕉:300,橙子:200,苹果:500};
让文本=“”;
对于(让 [水果,值] 的 Object.entries(水果)){
文本 += 水果 + “:” + 值 + “
";
}
亲自尝试 »
Object.entries() 还可以轻松地将对象转换为地图:
Chrome 和 Firefox 是第一批支持 Object.entries
:
Chrome 47 | 边缘 14 | Firefox 47 | Safari 10.1 | 歌剧 41 |
2016 年 6 月 | 2016 年 8 月 | 2016 年 6 月 | 2017 年 3 月 | 2016 年 10 月 |
JavaScript 对象值
Object.values
类似于Object.entries
,但返回对象值的单维数组:
例子
const 人 = {
名字:“约翰”,
姓氏:“Doe”,
年龄 : 50,
眼睛颜色:“蓝色”
};
document.getElementById("demo").innerHTML = Object.values(person);
亲自尝试 »
Firefox 和 Chrome 是第一批支持 Object.values
:
Chrome 54 | 边缘 14 | Firefox 47 | Safari 10.1 | 歌剧 41 |
2016 年 10 月 | 2016 年 8 月 | 2016 年 6 月 | 2017 年 3 月 | 2016 年 10 月 |
JavaScript 异步函数
等待超时
异步函数 myDisplay() {
让 myPromise = new Promise(function(myResolve,myReject) {
setTimeout(function() { myResolve("我爱你!!"); }, 3000);
});
document.getElementById("demo").innerHTML = 等待 myPromise;
}
我的显示();
亲自尝试 »
Firefox 和 Chrome 是第一批支持异步 JavaScript 函数的浏览器:
铬 55 | 边缘 15 | Firefox 52 | Safari 11 | 歌剧 42 |
2016 年 12 月 | 2017 年 4 月 | 2017 年 3 月 | 2017 年 9 月 | 2016 年 12 月 |