ECMAScript 2017

JavaScript 命名约定始于 ES1、ES2、ES3、ES5 和 ES6。

但是,ECMAScript 2016 和 2017 未被称为 ES7 和 ES8。

自 2016 年以来,新版本按年份命名(ECMAScript 2016/2017/2018)。

ECMAScript 2017 中的新特性

本章介绍 ECMAScript 2017 的新特性:

  • JavaScript 字符串填充
  • JavaScript Object.entries
  • JavaScript Object.values
  • JavaScript 异步函数
  • JavaScript 共享内存

JavaScript 字符串填充

ECMAScript 2017 添加了两个 String 方法:padStartpadEnd,以支持在字符串的开头和结尾进行填充。

contoh

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

Coba Sendiri

contoh

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

Coba Sendiri

Internet Explorer tidak mendukung pengisi kata string.

Firefox dan Safari adalah generasi pertama yang mendukung browser pengisi kata string JavaScript:

Chrome IE Firefox Safari Opera
Chrome 57 Edge 15 Firefox 48 Safari 10 Opera 44
Maret 2017 April 2017 Agustus 2016 September 2016 Maret 2017

masuk ke objek JavaScript

ECMAScript 2017 menambahkan fitur baru kepada objek Object.entries metode.

Object.entries() mengembalikan array pasangan kunci/nilai objek:

contoh

const person = {
  firstName : "Bill",
  lastName : "Gates",
  age : 50,
  eyeColor : "blue"
};
document.getElementById("demo").innerHTML = Object.entries(person);

Coba Sendiri

Object.entries() membuat mudah menggunakan objek dalam perulangan:

contoh

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

Coba Sendiri

Object.entries() membuat mudah mengkonversi objek ke peta:

contoh

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

Coba Sendiri

Chrome dan Firefox adalah generasi pertama yang mendukung Object.entries browser:

Chrome IE Firefox Safari Opera
Chrome 47 Edge 14 Firefox 47 Safari 10.1 Opera 41
Juni 2016 Agustus 2016 Juni 2016 Maret 2017 Oktober 2016

nilai objek JavaScript

Object.values seperti Object.entriesnamun mengembalikan array satu dimensi nilai objek:

contoh

const person = {
  firstName : "Bill",
  lastName : "Gates",
  age : 50,
  eyeColor : "blue"
};
document.getElementById("demo").innerHTML = Object.values(person);

Coba Sendiri

Firefox dan Chrome adalah generasi pertama yang mendukung Object.values browser:

Chrome IE Firefox Safari Opera
Chrome 54 Edge 14 Firefox 47 Safari 10.1 Opera 41
Oktober 2016 Agustus 2016 Juni 2016 Maret 2017 Oktober 2016

Fungsi Async JavaScript

Tunggu Waktu Habis

async function myDisplay() {
  let myPromise = new Promise(function(myResolve, myReject) {
    setTimeout(function() { myResolve("Saya Cinta Kamu !!"); }, 3000);
  });
  document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();

Coba Sendiri

Firefox dan Chrome adalah browser pertama yang mendukung fungsi JavaScript asinkron:

Chrome IE Firefox Safari Opera
Chrome 55 Edge 15 Firefox 52 Safari 11 Opera 42
Desember 2016 April 2017 Maret 2017 September 2017 Desember 2016