メインコンテンツまでスキップ

「ES2021」タグの記事が5件件あります

全てのタグを見る

`String.prototype.replaceAll`

· 約5分
Mathias Bynens ([@mathias](https://twitter.com/mathias))

JavaScript で文字列を扱ったことがあるなら、String#replace メソッドに出会ったことがあるでしょう。String.prototype.replace(searchValue, replacement) は指定されたパラメーターに基づいて一致する部分を置換した結果の文字列を返します:

弱い参照とファイナライザ

· 約13分
Sathya Gunasekaran ([@_gsathya](https://twitter.com/_gsathya)), Mathias Bynens ([@mathias](https://twitter.com/mathias)), Shu-yu Guo ([@_shu](https://twitter.com/_shu)), and Leszek Swirski ([@leszekswirski](https://twitter.com/leszekswirski))

一般的に、JavaScriptではオブジェクトへの参照は_強く保持されており_、オブジェクトへの参照がある限り、ガベージコレクションされることはありません。

const ref = { x: 42, y: 51 };
// `ref`(または同じオブジェクトへの他の参照)にアクセスできる限り、
// オブジェクトはガベージコレクションされません。

現在のところ、WeakMapWeakSetはJavaScriptでオブジェクトを弱参照する唯一の方法です:WeakMapWeakSetにキーとしてオブジェクトを追加しても、ガベージコレクションを妨げることはありません。

const wm = new WeakMap();
{
const ref = {};
const metaData = 'foo';
wm.set(ref, metaData);
wm.get(ref);
// → metaData
}
// このブロックスコープ内で`ref`への参照が無くなったため、
// オブジェクトはガベージコレクションされます。
// ただし、それが`wm`のキーである場合でも、`wm`へのアクセスは可能です。

Promiseの組み合わせ

· 約5分
Mathias Bynens ([@mathias](https://twitter.com/mathias))

ES2015でPromiseが導入されて以来、JavaScriptでは静的メソッドPromise.allPromise.raceの2つのPromiseコンビネーターがサポートされています。

現在、標準化プロセスを進行中の2つの新しい提案があります: Promise.allSettledPromise.anyです。この追加により、JavaScriptには合計4つのPromiseコンビネーターが存在し、それぞれ異なるユースケースを可能にします。

数値区切り文字

· 約2分
Mathias Bynens ([@mathias](https://twitter.com/mathias))

大きな数値リテラルは、特に繰り返しの数字が多い場合、人間の目で素早く解析するのが困難です。

1000000000000
1019436871.42

可読性を向上させるために、新しいJavaScriptの言語機能で数値リテラルにアンダースコアを区切り文字として使用できるようになりました。その結果、上記のような数値が千単位ごとにグループ化して書き直すことができます。