8494 Stimmen

Was bedeutet "use strict" in JavaScript, und was ist der Grund dafür?

Kürzlich habe ich einen Teil meines JavaScript-Codes durch Crockfords JSLint und es wurde folgende Fehlermeldung ausgegeben:

Problem in Zeile 1 Zeichen 1: Fehlende "use strict"-Anweisung.

Bei meinen Recherchen habe ich festgestellt, dass manche Leute "use strict"; in ihren JavaScript-Code zu integrieren. Nachdem ich die Anweisung hinzugefügt hatte, trat der Fehler nicht mehr auf. Leider hat Google nicht viel über die Geschichte hinter dieser String-Anweisung verraten. Sicherlich muss es etwas damit zu tun haben, wie das JavaScript vom Browser interpretiert wird, aber ich habe keine Ahnung, welche Auswirkungen das haben könnte.

Was ist also "use strict"; worum geht es dabei, was bedeutet es, und ist es noch relevant?

Reagiert einer der aktuellen Browser auf die "use strict"; Zeichenfolge oder ist sie für die künftige Verwendung bestimmt?

73 Stimmen

Die Antworten hier sind alt, aber sie sind falsch. Der Hauptgrund für den Strict-Modus war nicht, um Programmierfehler zu verhindern - es war, JavaScript lexikalisch skaliert zu machen, so dass es statisch analysierbar sein könnte :]

5 Stimmen

Und der Grund für die seltsame Syntax (magische Zeichenkette als Anweisung) ist die Abwärtskompatibilität mit älteren JavaScript-Engines. Die Idee des strengen Modus ist es, einige problematische JavaScript-Sprachkonstrukte zu verbieten, aber die Interpretation des Codes nicht zu ändern, so dass die Ausführung identisch ist, unabhängig davon, ob die JavaScript-Engine den strengen Modus tatsächlich unterstützt oder nicht.

18voto

use strict ist eine Möglichkeit, Ihren Code sicherer zu machen, weil Sie keine gefährlichen Funktionen verwenden können, die nicht so funktionieren, wie Sie es erwarten. Und, wie bereits geschrieben, macht es den Code strenger.

15voto

PippoApps.com Punkte 526

"use strict"; ist der Versuch der ECMA, JavaScript ein wenig robuster zu machen. Es bringt in JS einen Versuch, es zumindest ein wenig "streng" zu machen (andere Sprachen implementieren strenge Regeln seit den 90er Jahren). Es "zwingt" JavaScript-Entwickler dazu, eine Art von Best Practices für die Codierung zu befolgen. Dennoch ist JavaScript sehr anfällig. Es gibt keine typisierten Variablen, typisierten Methoden usw. Ich empfehle JavaScript-Entwicklern dringend, eine robustere Sprache wie Java oder ActionScript3 zu erlernen und die gleichen Best Practices in ihren JavaScript-Code zu implementieren, dann wird er besser funktionieren und leichter zu debuggen sein.

15voto

Rabin Pantha Punkte 891

Der "strict"-Modus von JavaScript wurde in ECMAScript 5 eingeführt.

(function() {
  "use strict";
  your code...
})();

Schreiben "use strict"; ganz oben in Ihrer JS-Datei schaltet die strenge Syntaxprüfung ein. Sie erledigt die folgenden Aufgaben für uns:

  1. zeigt einen Fehler an, wenn Sie versuchen, einer nicht deklarierten Variablen zuzuweisen

  2. hindert Sie daran, wichtige JS-Systembibliotheken zu überschreiben

  3. verbietet einige unsichere oder fehleranfällige Sprachfunktionen

use strict funktioniert auch innerhalb der einzelnen Funktionen. Es ist immer eine bessere Praxis, Folgendes einzuschließen use strict in Ihrem Code.

Problem der Browser-Kompatibilität: Die "use"-Richtlinien sollen abwärtskompatibel sein. Browser, die sie nicht unterstützen, sehen nur ein String-Literal, auf das nicht weiter verwiesen wird. Sie werden es also übergehen und weitermachen.

14voto

Wesam Punkte 854

Use Strict wird verwendet, um gemeinsame und wiederholte Fehler zu zeigen, so dass es anders behandelt wird, und ändert die Art und Weise Java-Skript läuft, sind solche Änderungen:

  • Verhindert versehentliche Globals

  • Keine Duplikate

  • Eliminiert mit

  • Beseitigt diese Nötigung

  • Sichereres eval()

  • Fehler bei unveränderlichen Elementen

können Sie auch dies lesen Artikel für die Einzelheiten

14voto

Bikash Chapagain Punkte 180

Normalerweise hält sich JavaScript nicht an strenge Regeln, wodurch sich die Fehlerwahrscheinlichkeit erhöht. Nach der Verwendung "use strict" sollte der JavaScript-Code strengen Regeln wie in anderen Programmiersprachen folgen, z. B. Verwendung von Terminatoren, Deklaration vor Initialisierung usw.

Si "use strict" verwendet wird, sollte der Code nach strengen Regeln geschrieben werden, um die Wahrscheinlichkeit von Fehlern und Mehrdeutigkeiten zu verringern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X