globalThis
もし以前にWebブラウザで使用するJavaScriptを書いたことがあるなら、グローバルthis
にアクセスするためにwindow
を使用した可能性があります。Node.jsでは、global
を使ったことがあるかもしれません。どちらの環境でも動作するコードを書く場合、利用可能なものを検出して使用してきたかもしれませんが、サポートする環境とユースケースの数が増えるごとにチェックすべき識別子のリストは増加します。それはすぐに管理ができなくなります:
もし以前にWebブラウザで使用するJavaScriptを書いたことがあるなら、グローバルthis
にアクセスするためにwindow
を使用した可能性があります。Node.jsでは、global
を使ったことがあるかもしれません。どちらの環境でも動作するコードを書く場合、利用可能なものを検出して使用してきたかもしれませんが、サポートする環境とユースケースの数が増えるごとにチェックすべき識別子のリストは増加します。それはすぐに管理ができなくなります:
モダンなWebアプリケーションでは、動的なデータで構成されたリストがよく使用されます。例えば、写真ビューアアプリでは以下のような表示がされることがあります:
この写真にはAda、Edith、_および_Graceが含まれます。
テキストベースのゲームでは、異なる種類のリストが用いられるかもしれません:
あなたの超能力を選んでください:不可視化、念動力、_または_共感力。
各言語ごとにリストのフォーマットの慣例や単語が異なるため、ローカライズされたリストフォーマッタを実装するのは簡単ではありません。サポートしたいすべての言語の単語(上記の例では「and」や「or」など)のリストが必要なだけでなく、それらの言語における特定のフォーマットの慣例もすべてエンコードする必要があります。Unicode CLDRはそのデータを提供していますが、それをJavaScriptで使用するには、他のライブラリコードと一緒に埋め込んで配送する必要があります。このため、そのようなライブラリの場合、バンドルサイズが増加し、読み込み時間、解析/コンパイルコスト、メモリ使用量に悪影響を及ぼします。