English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript Grundkurs

JavaScript Objekt

JavaScript Funktion

JS HTML DOM

JS Browser BOM

AJAX Grundkurs

JavaScript Referenzhandbuch

Strict-Modus (use strict) in JavaScript

ECMAScript 5Der strenge Modus von JavaScript, der inWahlweise beitreten Eine Möglichkeit, eine begrenzte Variante von JavaScript zu verwenden.

Der strenge Modus ist nicht nur ein Teil: Er hat bewusst eine andere Semantik als regulärer Code.

Der strenge Modus macht das Schreiben "sicherer" JavaScript einfacher.

Der strenge Modus ändert die früher akzeptierten "Fehler in der Syntax" in tatsächliche Fehler.

Unter strikter Modus, zum Beispiel, können Sie nicht unverkündete Variablen verwenden.

Aufruf des strengen Modus

Der strenge Modus wird durch Hinzufügen von "use strict"; am Anfang eines Skripts oder einer Funktion angegeben.

Um den strengen Modus für das gesamte Skript aufzurufen, geben Sie die Anweisung "use strict"; vor allen anderen Deklarationen ein:

"use strict";
str = "嗨,我是严格模式脚本!";  // Führt zu einem Fehler, weil str nicht deklariert ist
Testen sehen‹/›

Um den strengen Modus für eine Funktion aufzurufen, geben Sie die genaue Anweisung "use strict"; in den Körper der Funktion ein, und platzieren Sie sie vor allen anderen Anweisungen:

function myFunc() {
  // Syntax des strengen Modus auf Funktionsebene
  "use strict";
  str = "大家好,我是严格模式函数!";  // Dies führt zu einem Fehler
  return str;
}
Testen sehen‹/›

Der strenge Modus hilft Ihnen, kürzere und sauberere Code zu schreiben, z.B. indem er die Verwendung von nicht deklarierten Variablen verhindert.

Die Anweisung "use strict" wird nur am Anfang eines Skripts oder einer Funktion erkannt.

Sowohl die Syntax mit einfachen als auch mit doppelten Anführungszeichen ist akzeptabel ('use strict' oder "use strict";).

Gängige Einschränkungen im strengen Modus

Wie Sie wissen, müssen im strengen Modus alle Variablen deklariert werden.

Wenn ein Wert einem nicht deklarierten Identifizierer zugewiesen wird, wird ein ReferenceError ausgelöst:

"use strict";
x = 5 // ReferenceError: x ist nicht definiert
Testen sehen‹/›

Die Verwendung von nicht deklarierten Objekten (Objekte sind auch Variablen) ist nicht erlaubt:

"use strict";
coord = {x:10, y:20};   // ReferenceError: coord ist nicht definiert
Testen sehen‹/›

Im strengen Modus wird ein Syntaxfehler ausgelöst, wenn versucht wird, eine Variable zu löschen:

"use strict";
var msg = "Hello World";
delete msg;// SyntaxError
Testen sehen‹/›

Gleichzeitig führt der Versuch, eine Funktion im strengen Modus zu löschen, zu einem Syntaxfehler:

"use strict";
function sum(a, b) {
return a + b;
}
delete sum;// SyntaxError
Testen sehen‹/›

Im strengen Modus ist die Wiederholung von Parameternamen nicht erlaubt:

"use strict";
function square(a, a) {  // SyntaxError
return a * a;
}
Testen sehen‹/›

Im strengen Modus ist das Schreiben von schreibgeschützten Eigenschaften nicht erlaubt:

"use strict";
var person = {name: "Akash", age: 22);
Object.defineProperty(person, "gender", {value: "male", writable: false});
person.gender = "female";   // TypeError
Testen sehen‹/›

Im strengen Modus ist die Verwendung von with-Anweisungen nicht erlaubt:

"use strict";
mit (Math) { x = sqrt(25);   // SyntaxError
Testen sehen‹/›

Im strengen Modus ist die Verwendung von Okzalzahlen nicht erlaubt:

"use strict";
var x = 010   // SyntaxError
Testen sehen‹/›

;Aus Sicherheitsgründeneval()

"use strict";
Es ist nicht erlaubt, Variablen im Bereich zu erstellen, in dem es aufgerufen wird: 10eval("var x = ",
;   // console.log(x);
Testen sehen‹/›

ReferenceError: Variable x ist nicht definiert

"use strict";
Der String "eval" kann nicht als Bezeichner (Variablenname) verwendet werden:3codebox.com";// SyntaxError
Testen sehen‹/›

Der String "arguments" kann nicht als Bezeichner (Variablenname) verwendet werden:

"use strict";
var arguments = "oldtoolbag.com";// SyntaxError
Testen sehen‹/›

Pfade für zukünftige ECMAScript-Versionen bereiten vor

Zukünftige ECMAScript-Versionen könnten neue Syntax einführen, ES5Im strengen Modus werden einige Beschränkungen angewendet, um den Übergang zu vereinfachen.

Es ist einfacher, einige Änderungen durchzuführen, wenn die Grundlage, auf der diese Änderungen verboten sind, in strenger Modus ist.

In strenger Modus werden die folgenden Bezeichner zu reservierten Schlüsselwörtern:

  • implements

  • interface

  • let

  • package

  • private

  • protected

  • public

  • static

  • yield

"use strict";
var package = true;  // Dies wird einen Fehler verursachen
Testen sehen‹/›