ECMAScriptの新仕様.js
古い方まで順番に書いていきたい所存
あとでかいて
ES2023
配列の非破壊的変更(Change Array by copy)
Array.prototype.toReversed(), Array.prototype.toSorted(compareFn), Array.prototype.toSpliced(start, deleteCount, ...items), Array.prototype.with(index, value)
WeakMapのキーににSymbolを使う(Symbols as WeakMap keys) ハッシュバンコメント(Hashbang Grammar)
1行目に限り#!から始まっていればその行をコメントとして扱う
Node.jsとかで実行環境を指定する構文だがブラウザで読まれると困るのでコメント扱いということにした
配列を末尾から検索(Array find from last)
Array.prototype.findLast(), Array.prototype.findLastIndex()
クラスオブジェクトのプライベートメソッド(Private instance methods and accessors)
#から始まるメソッド名はprivateになって外側からアクセスできない
クラスオブジェクトのプライベートフィールド(Class Public Instance Fields & Private Instance Fields)
#から始まる(ry
クラスオブジェクトの静的メソッド/フィールド(Static class fields and private static methods)
Math.PIみたいなのが自前クラスで作れるという認識でOK?
正規表現マッチ位置の追加(RegExp Match Indices)
/regexp/dフラグで返り値にindicesが増える。その値そのままsliceにぶん投げれる
トップレベルでawait(Top-level await)
awaitがトップレベル(関数外)でも使えるように
privateフィールドの存在チェック(Ergonomic brand checks for Private Fields)
自身のクラス内でのみしか使えないが、privateフィールドをin演算子で存在チェックできるように
String.at, Array.at, TypedArray.at(.at() method on all the built-in indexables)
添字表記と同じように見えて負の数を指定すると末尾から拾える。.at(-1)が末尾。
Object.hasOwnPropertyのショートハンド(Accessible Object.prototype.hasOwnProperty)
.hasOwnで良くなる