Neueste Web-Entwicklung Tutorials
 

JavaScript Verwenden Sie Strict


"use strict"; Legt fest , dass JavaScript - Code sollte in "Strict - Modus" ausgeführt werden.


Die "use strict" Richtlinie

Die "use strict" Richtlinie ist neu in JavaScript 1.8.5 (ECMAScript version 5) .

Es ist keine Aussage, sondern eine wörtliche Ausdruck, die von früheren Versionen von JavaScript ignoriert.

Der Zweck von "use strict" ist , um anzuzeigen , dass der Code sollte in "Strict - Modus" ausgeführt werden.

Mit strengen Modus können Sie zum Beispiel nicht, verwenden Sie nicht deklarierte Variablen.

Strict-Modus wird unterstützt in:
IE ab Version 10. Firefox ab Version 4.
Chrome ab Version 13. Safari ab Version 5.1.
Opera ab Version 12.


Deklarieren Strict-Modus

Strict - Modus wird durch das Hinzufügen erklärt "use strict"; zu Beginn eines Skripts oder einer Funktion.

Erklärt am Anfang eines Skripts, es hat globale Reichweite (alle Code in das Skript im strikten Modus ausgeführt wird):

Beispiel

"use strict";
x = 3.14;       // This will cause an error (x is not defined)
Versuch es selber "

Beispiel

"use strict";
myFunction();

function myFunction() {
    y = 3.14;   // This will also cause an error (y is not defined)
}
Versuch es selber "

Erklärt in einer Funktion, hat es lokalen Bereich (nur der Code innerhalb der Funktion im strikten Modus ist):

x = 3.14;       // This will not cause an error.
myFunction();

function myFunction() {
   "use strict";
    y = 3.14;   // This will cause an error (y is not defined)
}
Versuch es selber "

Die "use strict"; Syntax

Die Syntax, für die Erklärung der strikten Modus wurde entwickelt, um mit älteren Versionen von JavaScript kompatibel zu sein.

Kompilieren eines Zahlenliteral (4 + 5;) oder eine Stringliteral ("John Doe";) in einem JavaScript - Programm hat keine Nebenwirkungen. Es kompiliert lediglich eine nicht vorhandene Variable und stirbt.

So "use strict" ; nur wichtig, um neue Compiler, dass "verstehen" die Bedeutung davon.


Warum Strict-Modus?

Strict-Modus macht es leichter zu schreiben "sicheren" JavaScript.

Strict-Modus Änderungen zuvor akzeptiert "schlechte Syntax" in echte Fehler.

eine neue globale Variable Als Beispiel in normalen JavaScript, erstellt einen Variablennamen Tippfehler. Im strikten Modus wird dies auf einen Fehler werfen, ist es unmöglich, versehentlich schaffen eine globale Variable zu machen.

Im normalen JavaScript, erhalten ein Entwickler werden keine Fehler Feedback Werte nicht beschreibbaren Eigenschaften zuweisen.

Im strikten Modus jede Zuordnung zu einem nicht beschreibbaren Eigenschaft, ein Getter-Unterkunft, die nur eine nicht vorhandene Eigenschaft, eine nicht vorhandene Variable oder ein nicht vorhandenes Objekt, wirft einen Fehler.


Nicht erlaubt in Strict-Modus

Mit Hilfe einer variablen, ohne es zu erklären, ist nicht erlaubt:

"use strict";
x = 3.14;                // This will cause an error (x is not defined)

Versuch es selber "

Die Objekte sind zu Variablen.

Mit einem Objekt, ohne es zu erklären, ist nicht erlaubt:

"use strict";
x = {p1:10, p2:20};      // This will cause an error (x is not defined)

Versuch es selber "

Löschen einer Variable (oder Objekt) ist nicht erlaubt.

"use strict";
var x = 3.14;
delete x;                // This will cause an error

Versuch es selber "

Das Löschen ist eine Funktion nicht erlaubt.

"use strict";
function x(p1, p2) {};
delete x;                // This will cause an error 

Versuch es selber "

einen Parameternamen Duplizierung ist nicht erlaubt:

"use strict";
function x(p1, p1) {};   // This will cause an error

Versuch es selber "

Octal Zahlenliterale sind nicht zulässig:

"use strict";
var x = 010;             // This will cause an error

Versuch es selber "

Escape-Zeichen sind nicht erlaubt:

"use strict";
var x = \010;            // This will cause an error

Versuch es selber "

Schreiben in eine schreibgeschützte Eigenschaft ist nicht erlaubt:

"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});

obj.x = 3.14;            // This will cause an error

Versuch es selber "

Das Schreiben in einem Get-only-Eigenschaft ist nicht erlaubt:

"use strict";
var obj = {get x() {return 0} };

obj.x = 3.14;            // This will cause an error

Versuch es selber "

eine nicht löschbare Eigenschaft Löschen ist nicht erlaubt:

"use strict";
delete Object.prototype; // This will cause an error

Versuch es selber "

Der String "eval" kann nicht als eine Variable verwendet werden:

"use strict";
var eval = 3.14;         // This will cause an error

Versuch es selber "

Die Zeichenfolge "Argumente" kann nicht als Variable verwendet werden:

"use strict";
var arguments = 3.14;    // This will cause an error

Versuch es selber "

Die Anweisung with ist nicht erlaubt:

"use strict";
with (Math){x = cos(2)}; // This will cause an error

Versuch es selber "

Aus Sicherheitsgründen wird eval() nicht zu schaffen Variablen im Umfang erlaubt , von dem es hieß:

"use strict";
eval ("var x = 2");
alert (x);               // This will cause an error

Versuch es selber "

In Funktionsaufrufen wie f() , war der dieser Wert das globale Objekt. Im strikten Modus wird es jetzt nicht definiert.


Zukunftssicher!

Zukünftige reservierte Schlüsselwörter sind nicht im strikten Modus erlaubt. Diese sind:

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static
  • yield
"use strict";
var public = 1500;      // This will cause an error

Versuch es selber "


Achtung!

Achtung!

Die "use strict" Richtlinie wird erst am Anfang eines Skripts oder einer Funktion erkannt.