JavaScript のモード

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む3読むのに数分
  • JavaScript のモードは、カスタムアプリケーションの設計および実行時の設定です。既存のサーバーサイドスクリプトと、ECMAScript 2021 標準に合わせて新しく開発されたスクリプトをサポートするために、JavaScript エンジンには ECMAScript 2021 (ES12)、ES5 標準、および互換の 3 つのモードがあります。

    アプリケーションはこの 3 つの JavaScript モードのいずれかを使用するように構成します。新しいスコープ対象のアプリケーションのデフォルトモードは ECMAScript 2021 (ES12) で、新しいグローバルアプリケーションのデフォルトモードは ES5 標準です。

    JavaScript モードを変更するには

    カスタムアプリケーションで JavaScript モードを変更するには、フルアクセスを許可する管理者または委任開発者ロールが必要です。

    1. カスタムアプリケーション [sys_app] テーブルにリストされているカスタムアプリケーションを見つけて選択します。
    2. [デザインとランタイム (Design and Runtime)] で、[JavaScript モード] メニューから利用可能なオプションを選択します。

    併せて、「カスタムアプリケーションレコードを更新する」を参照してください。

    ECMAScript 2021 (ES12) モード

    スコープ対象のアプリケーションを新しく作成する場合は、ECMAScript 2021 (ES12) モードがデフォルトモードになります。このモードは、Tokyo より前の JavaScript エンジンの従来動作を保持せず、グローバルスクリプトを操作しません。

    ECMAScript 2021 (ES12) モードは、ECMAScript 2021 (ES12) および ECMAScript 2022 (ES13) 構文と機能のサブセットをサポートしており、それには次の機能が含まれます。
    • デフォルトの関数パラメーター
    • Rest パラメーター
    • For-of ループ
    • テンプレートリテラル
    • デストラクチャリング
      • 宣言
      • アサイン
      • パラメーター
    • const 宣言
    • let 宣言
    • アロー関数
    • class 宣言
    • マップセット
    • オプションのチェーン演算子 (?.)

    ES5 標準モード

    ES5 標準モードは、グローバルアプリケーションのデフォルトモードであり、スコープ対象のアプリケーションのオプションです。このモードは、Helsinki より前の JavaScript エンジンの従来動作を保持することはありません。

    ES5 標準モードは、ECMAScript5 構文と機能をサポートしており、それには次の機能が含まれます。
    • 「use strict」宣言
    • オブジェクトの拡張性の制御
    • オブジェクトの get プロパティと set プロパティ (アクセサー)
    • オブジェクトプロパティの書き込み、構成、および列挙の制御
    • 新しい Array メソッドと Date メソッド
    • ネイティブ JSON のサポート
    • lodash.js や moment.js などの最新のサードパーティ製ライブラリのサポート

    ECMAScript 2021 (ES12) および ES5 標準モードでサポートされている機能の詳細については、「JavaScript エンジン機能のサポート」を参照してください。

    互換性モード

    互換性モードは、ES5 標準モードが追加される前に開発されたすべてのスクリプトに使用されます。互換性モードには、以前の JavaScript エンジンとは異なる点があります。

    JSON サポートの変更 :
    • JSON.stringify() および JSON.parse() は、ES5 ネイティブ JSON オブジェクトを使用して実装されています。
    • 新しい JSON().encode() と新しい JSON().decode() は引き続きサポートされますが、レガシー動作が必要となる場合にのみ使用してください。

    サードパーティの JavaScript ライブラリの使用は、互換性モードではサポート対象外です。