diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:41:15 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:41:15 -0500 |
commit | 4b1a9203c547c019fc5398082ae19a3f3d4c3efe (patch) | |
tree | d4a40e13ceeb9f85479605110a76e7a4d5f3b56b /files/de/web/javascript/reference/fehler/strict_non_simple_params | |
parent | 33058f2b292b3a581333bdfb21b8f671898c5060 (diff) | |
download | translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.gz translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.bz2 translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.zip |
initial commit
Diffstat (limited to 'files/de/web/javascript/reference/fehler/strict_non_simple_params')
-rw-r--r-- | files/de/web/javascript/reference/fehler/strict_non_simple_params/index.html | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/files/de/web/javascript/reference/fehler/strict_non_simple_params/index.html b/files/de/web/javascript/reference/fehler/strict_non_simple_params/index.html new file mode 100644 index 0000000000..a288a81a10 --- /dev/null +++ b/files/de/web/javascript/reference/fehler/strict_non_simple_params/index.html @@ -0,0 +1,111 @@ +--- +title: 'SyntaxError: "use strict" not allowed in function with non-simple parameters' +slug: Web/JavaScript/Reference/Fehler/Strict_Non_Simple_Params +tags: + - Errors + - JavaScript + - TypeError +translation_of: Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params +--- +<div>{{jsSidebar("Errors")}}</div> + +<h2 id="Fehlermeldung">Fehlermeldung</h2> + +<pre class="syntaxbox">Firefox: +SyntaxError: "use strict" not allowed in function with default parameter +SyntaxError: "use strict" not allowed in function with rest parameter +SyntaxError: "use strict" not allowed in function with destructuring parameter + +Chrome: +SyntaxError: Illegal 'use strict' directive in function with non-simple parameter list +</pre> + +<h2 id="Fehlertyp">Fehlertyp</h2> + +<p>{{jsxref("SyntaxError")}}.</p> + +<h2 id="Was_ist_falsch_gelaufen">Was ist falsch gelaufen?</h2> + +<p>Eine <code>"use strict"</code> Direktive steht am Anfang einer Funktion, die einen der folgende Parameter hat:</p> + +<ul> + <li>{{jsxref("Functions/Default_parameters", "Standardparameter", "", 1)}}</li> + <li>{{jsxref("Functions/rest_parameters", "Rest Parameter", "", 1)}}</li> + <li>{{jsxref("Operators/Destructuring_assignment", "Destrukturierte Parameter", "", 1)}}</li> +</ul> + +<p>Eine <code>"use strict"</code> Direktive ist am Anfang solcher Funktionen durch die ECMAScript Spezifikation nicht erlaubt.</p> + +<h2 id="Beispiele">Beispiele</h2> + +<h3 id="Funktionsstatement">Funktionsstatement</h3> + +<p>In diesem Fall hat die Funktion <code>sum</code> zwei Standardparameter <code>a=1</code> und <code>b=2</code>:</p> + +<pre class="brush: js example-bad">function sum(a = 1, b = 2) { + // SyntaxError: "use strict" not allowed in function with default parameter + 'use strict'; + return a + b; +} +</pre> + +<p>Wenn die Funktion im <a href="/de/docs/Web/JavaScript/Reference/Strict_mode">Strict Mode</a> sein soll und das Skript oder die umschließende FUnktion auch für den Strict Mode in Ordnung ist, kann man die <code>"use strict"</code> Direktive nach außen verschieben:</p> + +<pre class="brush: js example-good">'use strict'; +function sum(a = 1, b = 2) { + return a + b; +} +</pre> + +<h3 id="Funktionsausdruck">Funktionsausdruck</h3> + +<p>Bei eine Funktionsausdruck kann ein andere Workaround genutzt werden:</p> + +<pre class="brush: js example-bad">var sum = function sum([a, b]) { + // SyntaxError: "use strict" not allowed in function with destructuring parameter + 'use strict'; + return a + b; +}; +</pre> + +<p>Dieses kann zu folgendem Ausdruck konvertiert werden:</p> + +<pre class="brush: js example-good">var sum = (function() { + 'use strict'; + return function sum([a, b]) { + return a + b; + }; +})(); +</pre> + +<h3 id="Pfeilfunktionen">Pfeilfunktionen</h3> + +<p>Wenn eine Pfeilfunktion auf die <code>this</code> Variable zugreift, so kann eine umschließende Pfeilfunktion benutzt werden:</p> + +<pre class="brush: js example-bad">var callback = (...args) => { + // SyntaxError: "use strict" not allowed in function with rest parameter + 'use strict'; + return this.run(args); +}; +</pre> + +<p>Dieses kann zu folgendem Ausdruck konvertiert werden:</p> + +<pre class="brush: js example-good">var callback = (() => { + 'use strict'; + return (...args) => { + return this.run(args); + }; +})(); +</pre> + +<h2 id="Siehe_auch">Siehe auch</h2> + +<ul> + <li>{{jsxref("Strict_mode", "Strict mode", "", 1)}}</li> + <li>{{jsxref("Statements/function", "function statement", "", 1)}}</li> + <li>{{jsxref("Operators/function", "function expression", "", 1)}}</li> + <li>{{jsxref("Functions/Default_parameters", "Default parameters", "", 1)}}</li> + <li>{{jsxref("Functions/rest_parameters", "Rest parameters", "", 1)}}</li> + <li>{{jsxref("Operators/Destructuring_assignment", "Destructuring parameters", "", 1)}}</li> +</ul> |