ES2022
Class Fields
privateメソッド・privateフィールドを作れるよ!
private.jsclass Foo{
#privatemethod() {
return "privatemethod";
}
publicmethod() {
return "publicmethod";
}
}
先頭に #
をつければprivateになる
IDEの機能でほぼ自動でできるよ

(privateの関数なのでクラス外で使われていない前提)
できたとしてもどこか変更されていない箇所が出てきそうで怖いな(経験談的に)

変更前の名前のエイリアス作って、エイリアス経由で踏んだらログが出るようにする

RegExp Match Indices
モジュールの一番浅いところで
awaitできるようになった
つまりどこでもawaitできるように
これにより、モジュール初期化終了までにpromiseの結果を取得できるようになった
ただこれを使うと、ES2022より前のバージョンにトランスパイルできなくなるので注意(
2024/12/08現在)
配列の要素を負の数で指定できるようになった
Pythonの配列内要素指定と同じ仕様と考えるとわかりやすい
errorCause.jstry{
try{
try{
throw new Error('Error1');
}catch(e){
throw new Error('Error2', {cause: e});
}
}catch(e){
throw new Error('Error3', {cause: e});
}
}catch(e){
console.table(e); // Error3
console.table(e.cause); // Error2
console.table(e.cause.cause); // Error1
}