2020.12.09

ざっくり ECMAScript 2018

ざっくりと ES2018 のおさらいをしたい人向け。オカタい説明は mdn さんあたりにおまかせするとして、ゆるっとざっくり気楽にサクッとコードベースでおさらい。ES2018 は for-await-ofの追加、正規表現周りの調整、Promiseにfinallyの追加、テンプレートリテラルが見直されたよ。

環境構築

  • MacOS High Sierra
  • ふる〜い MBP 使ってます
  • nvm, ndenv, nodebrew のどれでもいいので node が動く環境を用意
  • VSCode 使ってます。拡張はお好みで。
  • node.js のバージョンは v14.7.0
  • 適当なディレクトリを掘って、index.js を用意しています (ファイル名はお好みで)
  • 動作確認は $ node index.js って叩いてます

最小限で動かすだけならこれだけでおっけいです。ここらへんの準備も面倒ならば codepen だの JSFiddle だの REPL だのを使ってもおk

es2018

es2018 は以下のような機能が追加されている(参考 Wikipedia ECMAScript

オブジェクトに対するスプレッド構文非同期イテレーションPromise.prototype.finally正規表現への機能追加

非同期イテレーションである for-await-of に関しては、今日の時点で ESLint 非推奨 なのと Promise.all が息してるってことで省きます。(そのうち追加するかも

オブジェクトに対するスプレッド構文

配列で使えたスプレッド構文がオブジェクトでも使えるようになったよ

Promise.prototype.finally

Promise の最後の処理として finally を追加しておけば、非同期処理の後処理などに使えるよ

正規表現の新機能

以下の機能が追加されたよ

  1. キャプチャに名前をつけられるようになった
  2. sオプションを追加することで . (ドット)を改行文字と一致するように
  3. 後読みマッチ(Lookbehind)
  4. Unicode文字が持つプロパティにマッチさせられるようになった

4は記事が肥大化しそうなので今(2020/12/08 23:30)のところ割愛(便利そうだけど)

1. Named Capture Groups

?<name>Patternキャプチャーに名前をつけられるようになったよ。$1, $2 ともおさらば

2. dotAll flag

s フラグの追加で .(ドット)改行文字にもマッチするように

3. Lookbehind Assertions

/(?<=prePattern)pattern/ で後読みマッチに対応