ECMAScript 2017
Ang pagtutukoy ng pangalan ng JavaScript ay nagsimula sa ES1, ES2, ES3, ES5 at ES6.
Subalit, ang ECMAScript 2016 at 2017 ay hindi tinatawag na ES7 at ES8.
Mula 2016, ang bagong bersyon ay pinangalanan ayon sa taon (ECMAScript 2016/2017/2018).
Bagong katangian sa ECMAScript 2017
Ang kabanata na ito ay nagpapakilala sa bagong katangian ng ECMAScript 2017:
- String填充 sa JavaScript
- Object.entries sa JavaScript
- Object.values sa JavaScript
- Asynchronous Function sa JavaScript
- Shared Memory sa JavaScript
String填充 sa JavaScript
Nadagdag ng ECMAScript 2017 ang dalawang String method:padStart
at padEnd
Upang suportahan ang pagpadaloy sa simula at katapusan ng string.
实例
let str = "5"; str = str.padStart(4,0); // Ang resulta: 0005
实例
let str = "5"; str = str.padEnd(4,0); // 结果是: 5000
Internet Explorer 不支持字符串填充。
Firefox 和 Safari 是第一批支持 JavaScript 字符串填充的浏览器:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
March 2017 | April 2017 | 2016 年 8 月 | 2016 年 9 月 | March 2017 |
JavaScript 对象条目
ECMAScript 2017 向对象添加了新的 Object.entries
方法。
Object.entries() 方法返回对象中键/值对的数组:
实例
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = 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 + " "; }
Object.entries() 也使得将对象转换为映射变得简单:
实例
const fruits = {Bananas:300, Oranges:200, Apples:500}; const myMap = new Map(Object.entries(fruits));
Chrome 和 Firefox 是第一批支持 Object.entries
的浏览器:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
2016 年 6 月 | 2016 年 8 月 | 2016 年 6 月 | March 2017 | October 2016 |
JavaScript 对象值
Object.values
类似 Object.entries
,但返回对象值的单维数组:
实例
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = Object.values(person);
Firefox 和 Chrome 是第一批支持 Object.values
的浏览器:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
October 2016 | 2016 年 8 月 | 2016 年 6 月 | March 2017 | October 2016 |
JavaScript Async Function
Timeout Waiting
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 and Chrome are the first browsers to support asynchronous JavaScript functions:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
December 2016 | April 2017 | March 2017 | September 2017 | December 2016 |