Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
SyntaxError: "use strict" nicht erlaubt in Funktion mit nicht einfachen Parametern
Der JavaScript-Fehler ""use strict" nicht erlaubt in Funktion" tritt auf,wenn eine"use strict"-Anweisung am Anfang einer Funktion verwendet wird, dieStandardparameter,Rest-Parameter oderDestrukturierungs-Parameter hat.
In diesem Artikel
Meldung
SyntaxError: Illegal 'use strict' directive in function with non-simple parameter list (V8-based)SyntaxError: "use strict" not allowed in function with default parameter (Firefox)SyntaxError: "use strict" not allowed in function with rest parameter (Firefox)SyntaxError: "use strict" not allowed in function with destructuring parameter (Firefox)SyntaxError: 'use strict' directive not allowed inside a function with a non-simple parameter list. (Safari)
Fehlertyp
Was ist schiefgelaufen?
Eine"use strict"-Anweisung ist am Anfang einer Funktion geschrieben, die einender folgenden Parameter hat:
Eine"use strict"-Anweisung ist am Anfang solcher Funktionen lautder ECMAScript-Spezifikation nicht erlaubt.
Beispiele
>Funktionsdeklaration
In diesem Fall hat die Funktionsum Standardparametera=1 undb=2:
function sum(a = 1, b = 2) { // SyntaxError: "use strict" not allowed in function with default parameter "use strict"; return a + b;}Wenn die Funktion imStrict Mode sein soll unddas gesamte Skript oder die umgebende Funktion ebenfalls im Strict Mode sein kann, können Sie die"use strict"-Anweisung außerhalb der Funktion verschieben:
"use strict";function sum(a = 1, b = 2) { return a + b;}Funktionsausdruck
Ein Funktionsausdruck kann eine andere Lösung verwenden:
const sum = function sum([a, b]) { // SyntaxError: "use strict" not allowed in function with destructuring parameter "use strict"; return a + b;};Dies kann in den folgenden Ausdruck umgewandelt werden:
const sum = (function () { "use strict"; return function sum([a, b]) { return a + b; };})();Pfeilfunktion
Wenn eine Pfeilfunktion auf die Variablethis zugreifen muss, können Sie diePfeilfunktion als umgebende Funktion verwenden:
const callback = (...args) => { // SyntaxError: "use strict" not allowed in function with rest parameter "use strict"; return this.run(args);};Dies kann in den folgenden Ausdruck umgewandelt werden:
const callback = (() => { "use strict"; return (...args) => this.run(args);})();