---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# JavaScript モード

# JavaScript モード {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：3分

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

JavaScript モードは、アプリケーションまたはスクリプトでアクセスできる JavaScript 機能を制御します。新しいスコープ対象のアプリケーションのデフォルトモードは ECMAScript 2021 (ES12) で、新しいグローバルアプリケーションのデフォルトモードは ES5 標準です。ES5 標準または互換モードを使用するアプリケーションの個々のスクリプトに対して、ECMAScript 2021 (ES12) モードを有効にすることもできます。

ECMAScript 2021 (ES12) および ES5 標準モードでサポートされている機能の詳細については、「[JavaScript エンジン機能のサポート](https://servicenow-prod.fluidtopics.net/urQP0r1hKAEc_cvDIT9LxQ "Xanadu の ECMAScript 2021 (ES12) と ES5 標準 JavaScript モード間の ECMAScript 機能を比較します。どちらのモードも ECMAScript 機能のサブセットをサポートしています。")」を参照してください。

## ECMAScript 2021 (ES12) モード {#c_JS_modes__section_qdz_bxl_gtb}

スコープ対象のアプリケーションを新しく作成する場合は、ECMAScript 2021 (ES12) モードがデフォルトモードになります。新しいスクリプトを作成すると、アプリケーションで構成されている JavaScript モードに関係なく、ECMAScript 2021 (ES12) モードがデフォルトでオンになります。このモードは、Tokyo より前の JavaScript エンジンの従来動作を保持せず、グローバルスクリプトを操作しません。  
ECMAScript 2021 (ES12) モードは、ECMAScript 2021 (ES12) および ECMAScript 2022 (ES13) 構文と機能のサブセットをサポートしており、それには次の機能が含まれます。

* デフォルトの関数パラメーター
* Rest パラメーター
* For-of ループ
* テンプレートリテラル
* デストラクチャリング
  * 宣言
  * アサイン
  * パラメーター
  {#c_JS_modes__ul_llm_52w_mtb}
* const 宣言
* let 宣言
* アロー関数
* class 宣言
* マップセット
* オプションのチェーン演算子 `(?.)`
{#c_JS_modes__ul_rdz_bxl_gtb}

特定の ECMAScript 2021 (ES12) 機能については、ServiceNow 開発プログラム YouTube チャネルの「[Let's Learn ECMAScript 2021 (ECMAScript 2021 を学びましょう)](https://www.youtube.com/playlist?list=PL3rNcyAiDYK1fUOYO83KOfF-NriBRAERV)」のビデオを参照してください。

## ES5 標準モード {#c_JS_modes__section_pjd_s34_4tb}

ES5 標準モードは、グローバルアプリケーションのデフォルトモードであり、スコープ対象のアプリケーションのオプションです。このモードは、Helsinki より前の JavaScript エンジンの従来動作を保持することはありません。  
ES5 標準モードは、ECMAScript5 構文と機能をサポートしており、それには次の機能が含まれます。

* 「use strict」宣言
* オブジェクトの拡張性の制御
* オブジェクトの get プロパティと set プロパティ (アクセサー)
* オブジェクトプロパティの書き込み、構成、および列挙の制御
* 新しい Array メソッドと Date メソッド
* ネイティブ JSON のサポート
* lodash.js や moment.js などの最新のサードパーティ製ライブラリのサポート
{#c_JS_modes__ul_gyz_1mq_tv}

## 互換モード {#c_JS_modes__section_ojd_s34_4tb}

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

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

サードパーティの JavaScript ライブラリの使用は、互換性モードではサポート対象外です。
* **[JavaScript モードの切り替えに関する考慮事項](https://servicenow-prod.fluidtopics.net/1~NlLRXzp0iY2wmGKRnGZA)**   
  アプリケーションまたはスクリプトの JavaScript モードを切り替えると、既存のスクリプトの動作が変わる可能性があります。JavaScript モードを切り替える前、または切り替え後に発生した問題のトラブルシューティングを行う前に、動作の変化の例をいくつか確認してください。
* **[アプリケーションの JavaScript モードを設定する](https://servicenow-prod.fluidtopics.net/xHfsofuRbhgV4wXqF9KHAQ)**   
  JavaScript モードを選択して、アプリケーションで使用できる ECMAScript 機能を構成します。
* **[スクリプトの ECMAScript 2021 (ES12) モードを有効にする](https://servicenow-prod.fluidtopics.net/AgE_h8dxhoRz1NW~dfIW2A)**   
  ES5 標準モードまたは互換モードを使用するアプリケーションのサーバー側スクリプトで、ECMAScript 2021 (ES12) モードでサポートされている最新の JavaScript 機能を使用します。

