ECMAScript
新機能
ES2025
なんですかこれは
だれかが解説記事を書いてくれるまで詳細は書かないでおこう……
()内先頭に書くと一時的に修飾子のON/OFFを切り替えることができるらしい
なんですかこれは2
すいませんイテレーターは専門外で……
絶対Promise返すマンらしい、awaitと対
ES2024
Well-Formed Unicode Strings
String.prototype.isWellFormed
孤立サロゲート(2つセットのはずのサロゲートペアが1つしかない場所)がないことを確認する
String.prototype.toWellFormed()
孤立サロゲートをすべて�(U+FFFD)に置き換えた文字列を返す
Atomics.waitAsync()
Atomics.waitAsync()
RegExp v flag
Unicode Character Propertieがを扱えるようになる
Unicode Character Propertiesなどに対して「差集合・積集合」が扱えるようになる
Resizable and Growable ArrayBuffer
ArrayBufferのサイズが変えられるようになる
Array Grouping
Array.prototype.group()
配列の各要素をを引数に関数を実行し、その返り値が同じ要素同士をまとめたObjectを返す。
返り値が文字列とは限らない場合はMapにしてくれるArray.prototype.groupToMap()(MDN Web Docs)も追加される Promise.withResolvers
Promise.withResolvers()
実行中のPromiseをPromise外からresolve/rejectしたいときのために、resolveとrejectを持った状態でPromiseが作れる
Promise.withResolvers(promise).promiseとpromiseは別物っぽい。なんだこれ
ES2023
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で良くなる