≪ Today I learned.
RSS購読
    公開日
    タグ
    JavaScript
    著者
    ダーシノ

    ECMAScript Proposalの2025年6月のアップデート内容

    先日108回目のミーティングで、ECMAScriptの各種プロポーザルがアップデートされた。

    New Proposals

    Updated Proposals

    ECMAScript 2026に入るProposals

    Error.isError

    よくある以下のようなinstanceof Errorでは、実行環境(iframeやnodeのvm modulesなど)によって誤った結果を返す可能性がある。

    if (error instanceof Error) {
      // do something
    }

    Array#isArray()と同じようにError#isError()を使うことで、実行環境によらない正確な判定ができるようになる。

    if (Error.isError(error)) {
      // do something
    }

    その他のProposals

    Math.clamp

    数値を上限と下限の間に制限するための関数で、Math.min()Math.max()を組み合わせたようなものをMath.clamp()として提供する。

    function clamp(number, minimum, maximum) {
    	return Math.min(Math.max(number, minimum), maximum);
    }
    
    const val = clamp(20, 5, 15) // 15

    SeededPRNG

    シードを設定して再現可能な乱数を生成できる。C言語のrand関数のようなイメージ。

    const prnd = new Randome.Seeded(0)
    for (let i = 0; i < 10; i++) {
      console.log(prnd.random())
    }