Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

JavaScriptの追加機能メモ(ES2019(ES10))


久しぶりに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 catchcatchで引数の(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の引数を返す

  • (シンボル).descriptionSymbol定義時に引数に指定した値を返します。
const s = Symbol("test")
console.log(s.description) // test