TECH I.S.

ECMAScript 2019

JavaScriptのバージョン番号

古いJSバージョンは番号で命名されています。ES5(2009)およびES6(2015)。

2016年から、バージョンは年ごとに名前が付けられます:ECMAScript2016、2017、2018、2019、...

ES2019の新機能

警告

これらの機能は比較的新しいものです。

古いブラウザでは、代替コード(Polyfill)が必要になる場合があります


JavaScript文字列trimStart()

ES2019では、JavaScriptにStringメソッドtrimStart()が追加されました。

‘trimStart()‘ メソッドは、‘trim()‘ と同様に機能しますが、文字列の先頭からのみ空白を削除します。

let text1 = "     Hello World!     "; let text2 = text1.trimStart();

自分で試してみる»

JavaScript文字列trimStart()は2020年1月以降、すべてのブラウザーでサポートされています。


Chrome66 Edge79 Firefox61 Safari12 Opera50
2018年4月 2020年1月 2018年6月 2018年9月 2018年5月


JavaScript文字列trimEnd()

ES2019では、JavaScriptにStringメソッドtrimEnd()が追加されました。

trimEnd()メソッドは、trim()と同様に機能しますが、文字列の末尾からのみ空白を削除します。

let text1 = "     Hello World!     "; let text2 = text1.trimEnd();

自分で試してみる»

JavaScript文字列trimEnd()は2020年1月以降、すべてのブラウザーでサポートされています。


Chrome66 Edge79 Firefox61 Safari12 Opera50
2018年4月 2020年1月 2018年6月 2018年9月 2018年5月


JavaScriptオブジェクトfromEntries()

ES2019では、オブジェクトメソッドfromEntries()が JavaScriptに追加されました。

このfromEntries()メソッドは、反復可能なキーと値のペアからオブジェクトを作成します。

const fruits = [ ["apples", 300], ["pears", 900], ["bananas", 500] ]; const myObj = Object.fromEntries(fruits);

自分で試してみる(開発準備中) »

JavaScriptオブジェクトfromEntries()は2020年1月以降、すべてのブラウザーでサポートされています。


Chrome73 Edge79 Firefox 63 Safari12.1 Opera60
2019年3月 2020年1月 2018年10月 2019年3月 2019年4月


オプションのcatchバインディング

ES2019から、不要な場合はcatchパラメーターを省略できます。

2019年以前

try { // code } catch (err) { // code }

2019年以降

try { // code } catch { // code }

オプションのcatchバインディングは、2020年1月以降、すべてのブラウザーでサポートされています。


Chrome66 Edge79 Firefox58 Safari11.1 Opera53
2018年4月 2020年1月 2018年1月 2018年3月 2018年5月


JavaScript配列flat()

ES2019では、JavaScriptにArray flat()メソッドが追加されました。

このflat()メソッドは、ネストされた配列をフラット化することで新しい配列を作成します。

const myArr = [[1,2],[3,4],[5,6]]; const newArr = myArr.flat();

自分で試してみる(開発準備中) »

JavaScript配列flat()は2020年1月以降、すべてのブラウザーでサポートされています。


Chrome69 Edge79 Firefox62 Safari12 Opera56
2018年9月 2020年1月 2018年9月 2018年9月 2018年9月


JavaScript配列flatMap()

ES2019では、JavaScript にArrayflatMap()メソッドが追加されました。

このflatMap()メソッドは、まず配列のすべての要素をマップし、次に配列をフラット化して新しい配列を作成します。

const myArr = [1, 2, 3, 4, 5,6]; const newArr = myArr.flatMap((x) => x * 2);

自分で試してみる(開発準備中) »


Stable Array sort()

ES2019ではArray sort()メソッドが改訂されました。

2019年より前の仕様では、QuickSortなどの不安定な並べ替えアルゴリズムが許可されていました。

ES2019以降、ブラウザーは安定した並べ替えアルゴリズムを使用する必要があります。

要素を値で並べ替える場合、要素は同じ値を持つ他の要素との相対位置を維持する必要があります。

const myArr = [   {name:"X00",price:100 },   {name:"X01",price:100 },   {name:"X02",price:100 },   {name:"X03",price:100 },   {name:"X04",price:110 },   {name:"X05",price:110 },   {name:"X06",price:110 },   {name:"X07",price:110 } ];

自分で試してみる(開発準備中) »

上記の例では、価格に基づいて並べ替える場合、次のように、名前が他の相対位置にある結果が得られることは許可されません。

X01 100 X03 100 X00 100 X03 100 X05 110 X04 110 X06 110 X07 110

JSON.stringify()の改訂

ES2019では、JSON stringify()メソッドが改訂されました。

2019年より前は、JSONは \ でエンコードされた文字を文字列化できませんでした。

let text = JSON.stringify("\u26D4");

自分で試してみる(開発準備中) »

ES2019より前は、JSON.stringify()UTF-8コード ポイント(U+D800からU+DFFF)のJSONは、���のような壊れたUnicode文字を返しました。

この改訂後、UTF-8コードポイントを持つ文字列はJSON.stringify()を使用して安全に変換され、JSON.parse()を使用して元に戻されます。


区切り記号

行区切り記号と段落区切り記号(\u2028および\u2029)を文字列リテラルで使用できるようになりました。

2019年より前は、これらは行末記号として扱われ、エラー例外が発生しました。

// This is valid in ES2019: let text = "\u2028";

自分で試してみる(開発準備中) »

注記

現在、JavaScriptとJSONには同等のルールがあります。
ES2019より前:
text = JSON.parse('"\u2028"')は''に解析されます。
text = '"\u2028"'は構文エラー.


Revised Function toString()

ES2019ではFunctiontoString()メソッドが改訂されました。

このtoString()メソッドは、関数のソースコードを表す文字列を返します。

2019年から、toString()は、コメント、スペース、および構文の詳細を含む関数のソースコードを返す必要があります。

2019年より前は、さまざまなブラウザーが関数のさまざまなバリアントを返しました(コメントやスペース無しなど)。
2019 年から、関数は記述されているとおりに正確に返される必要があります。

function myFunction(p1, p2) {   return p1 * p2; }

自分で試してみる(開発準備中) »



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細