JavaScriptの追加機能メモ(ES2019(ES10))
- 文字列の片側だけ空白をトリミング(trimStart, trimEnd)
- 2要素の配列からオブジェクトを作る(Object.fronEntries)
- 配列の平坦化(flat, flatMap)
- catch句の引数の記述を省略可能
- 関数にtoString()を使用したときコメントも文字列となる
- Symbolの引数を返す
久しぶりにJavaScriptでの開発を行うことになったので、過去のアップデートを拾ってみました。
文字列の片側だけ空白をトリミング(trimStart, trimEnd)
- trimStartで左側、trimEndで右側だけ文字列の空白をtrimすることが可能になた。
- 文字列の両端を取り除くtrim()メソッドはES2015で追加済み。
const str = " Hello, World! "; console.log(str.trimStart()); // "Hello, World! " console.log(str.trimEnd()); // " Hello, World!" console.log(str.trim()); // "Hello, World!"
2要素の配列からオブジェクトを作る(Object.fronEntries)
- Object.fronEntriesを使って、[キー, バリュー]のペアの配列から、{ キー: バリュー }のオブジェクトを作ります。 ペアの配列は2次元配列としていくつでも指定可能です。
const ary = [ ["id", 1], ["name", "鈴木"], ["age", 19] ] console.log(Object.fromEntries(ary)); // {id: 1, name: "鈴木", age: 19}
配列の平坦化(flat, flatMap)
flat
- flat(N)でN階層目までネストされた配列をフラットにできます。Nを省略するとN=1と同じになります。
const ary = [ [1, 2], // 1階層ネスト [ [3, 4], // 2階層 [5, 6], [ [7, 8] // 3階層 ] ] ]; console.log(ary.flat()) // [ 1, 2, [ 3, 4 ], [ 5, 6 ], [ [ 7, 8 ] ] ]; console.log(ary.flat(2)) // [ 1, 2, 3, 4, 5, 6, [ 7, 8 ] ]; console.log(ary.flat(3)) // [ 1, 2, 3, 4, 5, 6, 7, 8 ];
flatMap
- 配列をマッピングしたあとにフラット化する。
const arr = ['I have a pen .', 'I have an apple .']; console.log( arr.flatMap(str => str.split(' ')) ); // ['I', 'have', 'a', 'pen ', '.', 'I', 'have', 'an', '', 'apple ', '.']
catch句の引数の記述を省略可能
try catch
のcatch
で引数の(e)
を省略可能になった。- 従来は引数
(e)
部分を記載しないとシンタックスエラーになっていた。
- 従来は引数
try { throw new Error } catch { // catch(e)としなくていい console.error("ERROR") }
関数にtoString()を使用したときコメントも文字列となる
- 関数.toString()としたときにコメントも文字列になります。
function sampleFunc() { /* comment */ return null } console.log(sampleFunc.toString()) // 出力 // function hoge() { // /* comment */ // return null // }
Symbolの引数を返す
(シンボル).description
でSymbol
定義時に引数に指定した値を返します。
const s = Symbol("test") console.log(s.description) // test