---
sourceDocument: Yokohama Erstellen oder ändern Sie Anwendungen
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/yokohama/application-development

 Release :

    - yokohama

ft:locale :

    - de-DE

ft:publication_title :

    - Yokohama Erstellen oder ändern Sie Anwendungen

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Creator


---

Überlegungen zum Wechseln des JavaScript-Modus
==============================================

Überlegungen zum Wechseln des JavaScript-Modus {#ariaid-title1}
===============================================================

* Freigeben Version: Yokohama
* 
* Aktualisiert 30. Januar 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 Minuten Lesedauer

Durch das Ändern des JavaScript-Modus für eine Anwendung oder ein Skript kann sich das Verhalten vorhandener Skripts ändern. Sehen Sie sich einige Beispiele für Verhaltensänderungen an, bevor Sie den JavaScript-Modus wechseln, oder um Probleme zu beheben, die nach dem Wechsel auftreten.

Weitere Informationen zu den einzelnen JavaScript-Modi finden Sie unter [JavaScript-Modi](https://servicenow-prod.fluidtopics.net/JmsiR0AcuL2Z4ErT7w2w3w "Der JavaScript-Modus ist eine Design- und Laufzeiteinstellung für anwenderdefinierte Anwendungen und Skripts. Zur Unterstützung vorhandener serverseitiger Skripts und neuer Skripts, die nach dem Standard ECMAScript 2021 entwickelt wurden, verfügt die JavaScript-Engine über drei Modi: ECMAScript 2021 (ES12), ES5-Standards und Kompatibilität.") und [Unterstützung der JavaScript-Engine-Funktionen](https://servicenow-prod.fluidtopics.net/_0w5rx1JTU47Ypa0r392qw "Vergleichen Sie die ECMAScript-Funktionen zwischen den Modi „ECMAScript 2021“ (ES12) und „ES5 Standards JavaScript“ in Yokohama. Beide Modi unterstützen eine Teilmenge der ECMAScript-Funktionen.").

Diese Tabelle zeigt, wie sich das JavaScript-Verhalten von der nachlässigen und fehleranfälligen Umgebung vor ES5 zum strengeren und vorhersehbareren ES5 und schließlich zur funktionsreicheren ES12-Umgebung (ECMAScript 2021) entwickelt hat.  
{#considerations-switching-javascript-mode__table_r4b_j4r_fcc__entry__4}

|                    Funktion                     |                                                                                                                                                      Kompatibilitätsmodus                                                                                                                                                       |                                                                                                                               ES5-Standardmodus                                                                                                                                |                                                                                                                                   ECMAScript 2021 (ES12)                                                                                                                                    |
|-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Argumentobjekt                                  | Das `Argumentobjekt` ist vorhanden, aber es gibt keinen `strikten Modus`, sodass Änderungen sich in `Argumenten`widerspiegeln. Drucke: *** Script: [object Arguments] *** Script: [object Arguments] *** Script: [object Arguments] *** Script: 123 {#considerations-switching-javascript-mode__codeblock_xph_2vz_pcc}          | Im strikten Modus spiegelt das Argumentobjekt keine Parameteränderungen wider und löst einen Fehler aus. Drucke: sn_es5: 123 sn_es5: undefined sn_es5: [object Arguments] sn_es5: 123 {#considerations-switching-javascript-mode__codeblock_yph_2vz_pcc}                       | Identisch mit ES5.                                                                                                                                                                                                                                                                          |
| Boolesche Überschreibungen                      | Primitive boolesche Werte (`true`, `false`) können überschrieben werden, was zu unerwartetem Verhalten führt.                                                                                                                                                                                                                   | Primitive boolesche Werte sind besser geschützt, können aber dennoch überschrieben werden, wenn sie Variablen zugewiesen werden.                                                                                                                                               | Identisch mit ES5, aber im strikten Modus können einige Zuweisungen verhindert werden. Der bedingte Ausdruck muss in diesem Format geschrieben werden: (cond_expr instanceof Boolean ? cond_expr.valueOf() : cond_expr). {#considerations-switching-javascript-mode__codeblock_zph_2vz_pcc} |
| Ausnahme für Syntaxfehler                       | Syntaxfehler lösen zur Laufzeit Ausnahmen aus. Fehlerbehandlung ist inkonsistent. Beispiel: Javascript compiler exception: unterminated string literal (null.null.script; line 1) in: var b = ' {#considerations-switching-javascript-mode__codeblock_aqh_2vz_pcc}                                                              | Konsistentere Behandlung von Syntaxfehlern, insbesondere im strikten Modus. Beispiel: Evaluator: com.glide.script.RhinoEcmaError: unterminated string literal script : Line(1) column(9) ==>   1: var b = ' {#considerations-switching-javascript-mode__codeblock_bqh_2vz_pcc} | Dasselbe wie ES5, jedoch mit robusterer Handhabung und eindeutigeren Fehlermeldungen in aktualisierten Engines. Beispiel: SyntaxError: Unterminated string constant at line 1 ==>   1: var b = ' {#considerations-switching-javascript-mode__codeblock_cqh_2vz_pcc}                         |
| Erhöhen und verringern Sie die Werte            | Für Variablen zulässig, kann jedoch bei komplexen Ausdrücken unerwartetes Verhalten zeigen. Drucke: *** Script: c: 1 *** Script: gr.related_incidents: 1 *** Script: 2 *** Script: 3 {#considerations-switching-javascript-mode__codeblock_dqh_2vz_pcc}                                                                         | Übersichtlichkeit verbessert, aber für Variablen (`var`, `let`, `const`) weiterhin zulässig. Drucke: sn_es5: c: 0 sn_es5: gr.related_incidents: 1 sn_es5: 1 sn_es5: 2 {#considerations-switching-javascript-mode__codeblock_eqh_2vz_pcc}                                       | Identisch mit ES5, mit strengeren Regeln in einigen Kontexten (z. ` B. const`).                                                                                                                                                                                                             |
| Zeilenfortsetzungen                             | Mit einem umgekehrten Schrägstrich (`\`) zulässig, aber aufgrund von Lesbarkeitsproblemen nicht empfohlen. In diesem Beispiel werden alle drei Funktionen aufgerufen. var expr = doFoo();  // do foo doBar();  // do bar finish();   // all done eval(expr); {#considerations-switching-javascript-mode__codeblock_fqh_2vz_pcc} | Identisch mit Kompatibilitätsmodus; Keine Änderung der Bearbeitungspositionsfortsetzungen. Im vorherigen Beispiel ruft ES5 nur die erste Funktion auf und behandelt alles nach dem ersten Kommentar einschließlich der Newline bis zum Ende des Ausdrucks als Kommentar.       | Identisch mit ES5, Vorlagenliterale bieten jedoch eine besser lesbare Alternative.                                                                                                                                                                                                          |
| Fehlende Semikolon                              | Die automatische Semikoloneinfügung (ASI) führte häufig zu unerwartetem Verhalten.                                                                                                                                                                                                                                              | Löst einen Syntaxfehler aus, wenn ein Semikolon fehlt.                                                                                                                                                                                                                         | Identisch mit ES5. Aktualisierte Praktiken fördern explizite Semikolon.                                                                                                                                                                                                                     |
| Nicht vorhandene Funktionen                     | Der Aufruf einer nicht vorhandenen Funktion löst einen `Referenzfehler`aus.                                                                                                                                                                                                                                                     | Löst einen `TypeError` aus, wenn eine Nicht-Funktion aufgerufen wird.                                                                                                                                                                                                          | Löst einen ECMAError aus, wenn eine nicht vorhandene Funktion aufgerufen oder auf eine Eigenschaft verwiesen wird.                                                                                                                                                                          |
| Nicht vorhandene Eigenschaften                  | Beim Zugriff auf eine nicht vorhandene Eigenschaft wird `undefiniert`zurückgegeben; kein Fehler ausgegeben.                                                                                                                                                                                                                     | Identisch mit vor ES5.                                                                                                                                                                                                                                                         | Identisch mit Kompatibilitätsmodus und ES5-Standardmodus.                                                                                                                                                                                                                                   |
| Numerische Literale                             | Grundlegende Dezimal- und Hexadezimalliterale.                                                                                                                                                                                                                                                                                  | Es wurden strengere Analyseregeln und eine bessere Verarbeitung von numerischen Literalen eingeführt.                                                                                                                                                                          | Binär- (`0b`), Oktal- (`0o`) und BigInt-Text (`123n`) hinzugefügt.                                                                                                                                                                                                                          |
| Reserviertes Stichwort als Eigenschaft          | Die Verwendung reservierter Stichwörter ist nicht möglich.                                                                                                                                                                                                                                                                      | Reservierte Stichwörter können ohne Fehler als Eigenschaftsnamen verwendet werden, z. B. `obj.for`. Gibt das Objekt bei der Rückgabe an.                                                                                                                                       | Identisch mit ES5.                                                                                                                                                                                                                                                                          |
| Behandeln Sie „let" und „Yield" als Stichwörter | `„let"` und `„Yield"` sind keine Schlüsselwörter und können nur als Bezeichner verwendet werden.                                                                                                                                                                                                                                | `let` wird als Stichwort eingeführt. `Ausbeute` ist im strikten Modus reserviert.                                                                                                                                                                                              | Beides sind Schlüsselwörter. Wenn Sie sie als Bezeichner verwenden, werden Syntaxfehler ausgelöst.                                                                                                                                                                                          |
[Tabelle : 1. Verhaltensunterschiede in JavaScript-Modi]

{#considerations-switching-javascript-mode__table_r4b_j4r_fcc}

