タグ

ブックマーク / zenn.dev/pixiv (4)

  • ECMAScript Module Harmony

    Module Harmony とは 現在 TC39 で多くのモジュール機能を追加する提案が進行しています。かつてはそれぞれの提案が無秩序に進行していましたが、2023年5月に Module Harmony として整理されました。この記事ではそれら提案についてまとめようと思います。 モジュール提案仕様の依存関係 インポートフェーズ修飾子 モジュールの読み込みがフェーズに分けられ、それぞれに対して修飾子が提案されています。シンタックスとしては import の後ろに修飾子を付けます。 import <Modifier> <ImportBinding> from <ModuleSpecifier>; import.<Modifier>(<AssignmentExpression>); モジュールの各フェーズと修飾子の対応 アセット参照 URL やパス解決のみをするのがアセット参照です。Asset

    ECMAScript Module Harmony
    teppeis
    teppeis 2024/01/05
    Harmony(n年ぶりm度目)
  • 正規表現を豊かにする ES2024 RegExp v (unicodeSets) フラグ

    2023/05/17 変更】 2023年5月の TC39 会議で Stage 4 になったため、タイトルを変更 HTML Standard の pattern 属性に取り込まれたので修正 ES2024 RegExp v (unicodeSets) フラグ ES2024 に RegExp v (unicodeSets) フラグというものがあります。これは既存の u (unicode) フラグを改善して置き換え、機能追加することを目的としています。 詳しい内容については V8 や 2ality による解説記事が詳しいです。ここではその概要をピックアップして述べたいと思います。 複数のコードポイントからなる絵文字の対応(Unicode Properties of Strings) ES2015 に u (unicode) フラグが導入され、コードポイント単位で正規表現を扱えるようになりました。

    正規表現を豊かにする ES2024 RegExp v (unicodeSets) フラグ
  • ECMAScript Annex B と型定義、ついでに ES2022 __proto__

    Annex B について JavaScript の言語仕様には Annex B という項目があります。ここには Web 互換性のために残されているレガシーな機能の仕様について記述してあり、新たに ECMAScript のコードを書く際にこれらの機能を使用したり、その存在を前提にしたりしてはいけないと明記されています。 String#big などの今となっては全く実用性のないメソッドや、escape, unescape 函数、もともと IE の独自実装だった String#substr などについて記述されています。 ブラウザではこれらの機能を取り除くことが出来ないので残念ながら扱うことが出来ます。また ChromeJavaScript エンジンである V8 を使っている Node.js や Deno でも Web 互換性を重視していることもあって扱うことが出来ます。 一方で Web

    ECMAScript Annex B と型定義、ついでに ES2022 __proto__
  • Symbol.species に未来はあるのか

    いや、ない(反語) ES2015 から導入された @@species について ES2015 からクラス構文が導入され、ビルトインクラスを継承したクラスを簡単に作れるようになりました。 ES2015 を策定するにあたって議論となったのがビルトインクラスそのものを返すメソッドの存在です。例えばこの MyArray のインスタンスで Array#map を実行したときにその返り値は MyArray であるべきでしょうか Array であるべきでしょうか。そしてそれをどうやって Array#map に伝えればいいでしょうか。 これを制御できるようにするのが @@species という Well-known Symbol です。普通は派生クラスを返しますが、任意のクラスを返すように変更することも可能になります。 class MyArray extends Array { // 明示的に @@spe

    Symbol.species に未来はあるのか
    teppeis
    teppeis 2021/09/22
    後方互換を壊すECMAScript仕様変更について
  • 1