JavaScript のモード
JavaScript のモードは、カスタムアプリケーションの設計および実行時の設定です。既存のサーバーサイドスクリプトと、ECMAScript 2021 標準に合わせて新しく開発されたスクリプトをサポートするために、JavaScript エンジンには ECMAScript 2021 (ES12)、ES5 標準、および互換の 3 つのモードがあります。
アプリケーションはこの 3 つの JavaScript モードのいずれかを使用するように構成します。新しいスコープ対象のアプリケーションのデフォルトモードは ECMAScript 2021 (ES12) で、新しいグローバルアプリケーションのデフォルトモードは ES5 標準です。
- JavaScript モードを変更するには
-
カスタムアプリケーションで JavaScript モードを変更するには、フルアクセスを許可する管理者または委任開発者ロールが必要です。
- カスタムアプリケーション [sys_app] テーブルにリストされているカスタムアプリケーションを見つけて選択します。
- [デザインとランタイム (Design and Runtime)] で、[JavaScript モード] メニューから利用可能なオプションを選択します。
併せて、「カスタムアプリケーションレコードを更新する」を参照してください。
ECMAScript 2021 (ES12) モード
スコープ対象のアプリケーションを新しく作成する場合は、ECMAScript 2021 (ES12) モードがデフォルトモードになります。このモードは、Tokyo より前の JavaScript エンジンの従来動作を保持せず、グローバルスクリプトを操作しません。
- デフォルトの関数パラメーター
- Rest パラメーター
- For-of ループ
- テンプレートリテラル
- デストラクチャリング
- 宣言
- アサイン
- パラメーター
- const 宣言
- let 宣言
- アロー関数
- class 宣言
- マップセット
- オプションのチェーン演算子
(?.)
ES5 標準モード
ES5 標準モードは、グローバルアプリケーションのデフォルトモードであり、スコープ対象のアプリケーションのオプションです。このモードは、Helsinki より前の JavaScript エンジンの従来動作を保持することはありません。
- 「use strict」宣言
- オブジェクトの拡張性の制御
- オブジェクトの get プロパティと set プロパティ (アクセサー)
- オブジェクトプロパティの書き込み、構成、および列挙の制御
- 新しい Array メソッドと Date メソッド
- ネイティブ JSON のサポート
- lodash.js や moment.js などの最新のサードパーティ製ライブラリのサポート
ECMAScript 2021 (ES12) および ES5 標準モードでサポートされている機能の詳細については、「JavaScript エンジン機能のサポート」を参照してください。
互換性モード
互換性モードは、ES5 標準モードが追加される前に開発されたすべてのスクリプトに使用されます。互換性モードには、以前の JavaScript エンジンとは異なる点があります。
- JSON.stringify() および JSON.parse() は、ES5 ネイティブ JSON オブジェクトを使用して実装されています。
- 新しい JSON().encode() と新しい JSON().decode() は引き続きサポートされますが、レガシー動作が必要となる場合にのみ使用してください。
サードパーティの JavaScript ライブラリの使用は、互換性モードではサポート対象外です。