ECMAScript 2017
JavaScriptの命名規則は、ES1、ES2、ES3、ES5、およびES6から始まりました。
ただし、ECMAScript2016および2017はES7およびES8とは呼ばれていませんでした。
2016年以降、新しいバージョンは年ごとに名前が付けられています(ECMAScript 2016/2017/2018)。
ECMAScript2017の新機能
この章では、ECMAScript2017の新機能を紹介します。
- JavaScript文字列のパディング
- JavaScript Object.entries
- JavaScript Object.values
- JavaScript非同期関数
- JavaScript共有メモリ
JavaScript文字列パディング
ECMAScript 2017では、2つのStringメソッドが追加されました。文字列の最初padStart
とpadEnd
最後のパディングをサポートするためです。
例
let str = "5";
str = str.padStart(4,0);
// result is 0005
例
let str = "5";
str = str.padEnd(4,0);
// result is 5000
文字列のパディングは、InternetExplorerではサポートされていません。
FirefoxとSafariは、JavaScriptの文字列パディングをサポートする最初のブラウザでした。
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Mar 2017 | Apr 2017 | Aug 2016 | Sep 2016 | Mar 2017 |
JavaScriptオブジェクトエントリ
Object.entries
ECMAScript 2017は、オブジェクトに新しいメソッドを追加します。
Object.entries()メソッドは、オブジェクト内のキーと値のペアの配列を返します。
例
const person = {
firstName : "John",
lastName : "Doe",
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 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Jun 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
JavaScriptオブジェクトの値
Object.values
に似てObject.entries
いますが、オブジェクト値の単一次元配列を返します。
例
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
Object.values(person);
FirefoxとChromeは、以下をサポートする最初のブラウザでした
Object.values
。
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Oct 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
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();
FirefoxとChromeは、非同期JavaScript関数をサポートする最初のブラウザでした。
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Dec 2016 | Apr 2017 | Mar 2017 | Sep 2017 | Dec 2016 |