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 padEndUpang suportahan ang pagpadaloy sa simula at katapusan ng string.

实例

let str = "5";
str = str.padStart(4,0);
// Ang resulta: 0005

Try It Yourself

实例

let str = "5";
str = str.padEnd(4,0);
// 结果是: 5000

Try It Yourself

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);

Try It Yourself

Object.entries() 使循环中使用对象变简单了:

实例

const fruits = {Bananas:300, Oranges:200, Apples:500};
let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "
";
}

Try It Yourself

Object.entries() 也使得将对象转换为映射变得简单:

实例

const fruits = {Bananas:300, Oranges:200, Apples:500};
const myMap = new Map(Object.entries(fruits));

Try It Yourself

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);

Try It Yourself

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();

Try It Yourself

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