JavaScript „use strict“
'use strict';
gibt an, dass der JavaScript-Code im ’strict mode‘ ausgeführt werden soll. Das macht es einfacher, guten und sicheren JavaScript-Code zu schreiben. Zum Beispiel,
myVariable = 9;
Hier wird myVariable ohne Deklaration angelegt. Dies funktioniert als globale Variable in JavaScript. Wenn Sie diese jedoch im Strict-Modus verwenden, wird das Programm einen Fehler ausgeben. Zum Beispiel,
'use strict';// ErrormyVariable = 9;
Der obige Code wirft einen Fehler, weil myVariable nicht deklariert ist. Im strikten Modus können Sie die Variable nicht verwenden, ohne sie zu deklarieren.
Um anzuzeigen, dass sich dieses Programm im strikten Modus befindet, haben wir
'use strict';
am Anfang des Programms verwendet.
Sie können den Strict-Modus deklarieren, indem Sie 'use strict';
oder "use strict";
am Anfang eines Programms einfügen.
Wenn Sie den strikten Modus am Anfang eines Programms deklarieren, hat er globalen Umfang und der gesamte Code im Programm wird im strikten Modus ausgeführt.
Strikter Modus in Variablen
Im strikten Modus wird bei der Verwendung einer Variablen, ohne sie zu deklarieren, ein Fehler ausgelöst.
Hinweis: Sie müssen den strikten Modus am Anfang des Programms deklarieren. Wenn Sie den Strict Mode unterhalb von Code deklarieren, funktioniert er nicht.
Zum Beispiel,
console.log("some code");// 'use strict' is ignored// must be at the top"use strict";x = 21; // does not throw an error
Strict Mode in Function
Sie können den Strict Mode auch innerhalb einer Funktion verwenden. Zum Beispiel,
myVariable = 9;console.log(myVariable); // 9function hello() { // applicable only for this function 'use strict'; string = 'hello'; // throws an error}hello();
Wenn Sie 'use strict';
innerhalb einer Funktion verwenden, wird der Code innerhalb der Funktion im strikten Modus sein.
Im obigen Programm wird 'use strict';
innerhalb der hello()
Funktion verwendet. Daher gilt der strenge Modus nur innerhalb der Funktion.
Wie Sie sehen, wird myVariable
am Anfang des Programms ohne Deklaration verwendet.
Wenn Sie 'use strict';
am Anfang des Programms deklarieren, können Sie eine Variable nicht verwenden, ohne sie auch innerhalb der Funktion zu deklarieren. Zum Beispiel,
// applicable to whole program'use strict';function hello() { string = 'hello'; // throws an error}hello();
Hinweis: Der strenge Modus gilt nicht für Blockanweisungen mit {}
geschweiften Klammern.
Dinge, die im strikten Modus nicht erlaubt sind
1. Nicht deklarierte Variablen sind nicht erlaubt.
'use strict';a = 'hello'; // throws an error
2. Nicht deklarierte Objekte sind nicht erlaubt.
'use strict';person = {name: 'Carla', age: 25}; // throws an error
3. Das Löschen eines Objekts ist nicht erlaubt.
'use strict';let person = {name: 'Carla'};delete person; // throws an error
4. Das Duplizieren eines Parameternamens ist nicht erlaubt.
"use strict";function hello(p1, p1) { console.log('hello')}; // throws an errorhello();
5. Die Zuweisung an eine nicht beschreibbare Eigenschaft ist nicht erlaubt.
'use strict';let obj1 = {};Object.defineProperty(obj1, 'x', { value: 42, writable: false });// assignment to a non-writable propertyobj1.x = 9; // throws an error
6. Die Zuweisung an eine Getter-Only-Eigenschaft ist nicht erlaubt.
'use strict';let obj2 = { get x() { return 17; } };// assignment to a getter-only propertyobj2.x = 5; // throws an error
7. Das Zuweisen an eine neue Eigenschaft auf einem nicht erweiterbaren Objekt ist nicht erlaubt.
'use strict';let obj = {};Object.preventExtensions(obj);// Assignment to a new property on a non-extensible objectobj.newValue = 'new value'; // throws an error
8. Oktal-Syntax ist nicht erlaubt.
'use strict';let a = 010; // throws an error
9. Die Variablennamen arguments und eval sind nicht erlaubt.
'use strict';let arguments = 'hello'; // throws an errorlet eval = 44;
10. Sie können diese reservierten Schlüsselwörter auch nicht im Strict-Modus verwenden.
implements
interface
let
package
private
protected
public
static
yield
Vorteile des Strict Mode
Die Verwendung des Strict Mode:
- hilft, einen saubereren Code zu schreiben
- verwandelt bisher akzeptierte stille Fehler (schlechte Syntax) in echte Fehler und wirft eine Fehlermeldung
- erleichtert das Schreiben von „sicherem“ JavaScript