ECMAScript2018(JavaScript)仕様か、第115回総会(2018年6月27日)で策定されましたね。
ECMA-262第9版 - ECMAScript®2018言語仕様
ECMA-402第5版 - ECMAScript®2018国際化API仕様書
引用元 http://ecma-international.org
2018仕様策定の概要としては
- AsyncIteratorプロトコルと非同期ジェネレータを介して非同期の反復のサポート
- dotAllフラグ、キャプチャグループ、Unicodeプロパティエスケープ、およびルックアヘッドアサーションの新しい正規表現機能が含まれる
- オブジェクトプロパティのrestパラメータとspreadオペレータをサポート
最近の書き方と昔の書き方の違いについて一部メモってみました。
- 変数の宣言
-- var以外にlet、constが追加されている。ES6から。(昔はvarを使うしか有りませんでした。)
varを使えば、以下の様に同名変数を宣言する事もできます。他の言語の感覚から言うと、大雑把な印象を持ってました。
var hoge = 1;
var hoge = 2;
が、letを使うと、同名変数を使えないので、エラーとなります。
'use strict'
let hoge = 1;
let hoge = 2;
まともになった感が有りますね。
- オブジェクトのコピーが楽になった。
- 2018仕様からスプレッド演算子のサポートが可能になりました。
const hogeObj = {...fooObj};
一行で済ませられるようになりました。以前は、ループしながら、値を一つずつコピーしてましたが、楽になったものです。