JavaScript ist eine verzeihende Sprache. Ein Teil der Syntax ist optional, und die Sprache behebt Fehler schneller als viele andere. Aber dieses Händchenhalten hat einen Nachteil: Es kann einfacher sein, Fehler einzuführen, und inkonsistenter Code ist schwerer zu lesen.

Wenn Sie mehr Disziplin üben möchten, gibt es glücklicherweise einen einfachen Weg: den strikten Modus. Der strikte Modus ist eine Möglichkeit, JavaScript zu veranlassen, entschiedener zu reagieren, wenn es auf Probleme in Ihrem Code stößt.

Was ist ein strenger Modus?

Mehrere Sprachen verwenden das Konzept eines strikten Modus: ein Modus, der Code strenger auswertet und ausführt. Vielleicht kennen Sie den HTML-String-Dokumenttyp, der bestimmte Elemente und Attribute ablehnt.

Perl, eine weitere interpretierte Skriptsprache, hat seit langem einen eigenen strikten Modus. Dieser Modus verbietet bestimmte Arten von unsicheren Ausdrücken.

Wie verwende ich den strengen Modus in JavaScript?

Fügen Sie in einem Skript eine „use strict“-Anweisung ganz oben vor allen anderen Anweisungen ein:

instagram viewer
// dieses gesamte Skript befindet sich im strikten Modus
'streng verwenden';

Beachten Sie, dass Sie davor einen Kommentar einfügen können, jedoch keine Anweisungen. Sie können den strikten Modus in einer JavaScript-Datei oder am Anfang eines Skriptblocks in einer HTML-Datei aktivieren. Sie können den strikten Modus auch funktionsbezogen aktivieren:

Funktion strikt() {
// Strict-Modus-Syntax auf Funktionsebene
'streng verwenden';
return "Diese Funktion ist streng";
}
Funktion lose () {
return "Diese Funktion ist NICHT streng";
}

Nachdem Sie den strikten Modus aktiviert haben, sollten Sie Ihren Code testen. Wenn Sie mit dem Web arbeiten, öffnen Sie a JavaScript-Konsole, damit Sie neue Fehler erkennen können.

Was macht der strikte Modus von JavaScript?

Kurz gesagt, der strikte Modus verzeiht bestimmte Arten von problematischem Code weniger. Anstatt Probleme zu ignorieren und die Ausführung fortzusetzen, wird das Skript bei bestimmten Fehlern angehalten. Dies ist oft sicherer, als unter unerwünschten Umständen weiterzumachen.

Verhindert versehentliche Globals

Das beste Beispiel, gegen das der strikte Modus schützt, ist die Erstellung zufälliger globaler Variablen. Bei normaler Ausführung dieser Code:

myVar = 17;

Es wird eine Eigenschaft namens myVar für das globale Objekt erstellt, vorausgesetzt, Sie haben myVar noch nicht deklariert. In einem Webbrowser ist das globale Objekt normalerweise window:

console.log (window.myVar);
>> 17

Wenn Sie jedoch eine „use strict“-Anweisung einfügen, wird in der Konsole ein Fehler angezeigt, etwa:

Uncaught ReferenceError: myVar ist nicht definiert

Der Grund, warum dies so nützlich ist, ist, dass es einen häufigen Fall von Tippfehlern aufgreift. Es ist leicht, einen Variablennamen falsch einzugeben, und viele Sprachen würden uns auf einen solchen Fehler aufmerksam machen.

Aber JavaScript nimmt standardmäßig einfach den Gültigkeitsbereich des globalen Objekts an und fährt fort, als ob nichts falsch wäre. Einige Codes können absichtlich von diesem Verhalten abhängen, was Sie beachten sollten, wenn Sie sich für den strikten Modus entscheiden.

Siehe auch: So halten Sie Ihren Code mit Objektkapselung sauber

Macht Fehler explizit

Einiges Verhalten in JavaScript schlägt fehl, aber es geschieht im Hintergrund. Möglicherweise wissen Sie nichts über solche Fehler, es sei denn, Sie suchen speziell nach ihnen. NaN ist beispielsweise eine spezielle Eigenschaft des globalen Objekts, die eine ungültige Zahl darstellt. Diese Eigenschaft ist schreibgeschützt, aber Sie können trotzdem versuchen, darauf zu schreiben:

NaN = 2;
>> 2

Aber obwohl es so aussieht, als ob diese Aufgabe erfolgreich war, war sie es nicht:

NaN
>> NaN

Im strikten Modus erhalten Sie einen tatsächlichen Fehler, der Ihnen mitteilt, dass Sie NaN nicht zuweisen können. Dieser Code verwendet eine Funktion, mit der Sie den strikten Modus in der Konsole demonstrieren können:

Javascript
Funktion badNaN() { "benutze strikt"; Fenster. NaN = 2; }
>> undefiniert
badNan()
>> Uncaught TypeError: Kann der schreibgeschützten Eigenschaft 'NaN' des Objekts '#' nicht zugewiesen werden
bei badNaN (:1:46)
bei :1:1

Dies ist ein klassisches Beispiel, das zeigt, dass Ignoranz zwar Glückssache sein kann, aber manchmal besser zu wissen ist, wenn etwas schief geht.

Warnt vor doppelten Parametern

Das letzte Beispiel behandelt ein wenig bekanntes Feature von JavaScript. Es mag Sie überraschen zu erfahren, dass Parameternamen nicht eindeutig sein müssen:

Funktion dupeParam (a, a, c) { console.log (a); }
>> undefiniert
dupeParam (2, 4, 8)
>> 4

Beachten Sie, dass JavaScript einem doppelten Parameter den neuesten Wert zuweist. Nun, dieses Verhalten ist nicht besonders nützlich. Tatsächlich wäre es für JavaScript nützlicher, uns mitzuteilen, dass es sich um einen Fehler handelt, und genau das macht der strikte Modus:

Funktion dupeParam (a, a, c) { "use strikt"; }
<< Uncaught SyntaxError: Doppelter Parametername in diesem Kontext nicht erlaubt

Verwenden Sie den strengen Modus für Extra-Code-Vertrauen

Gute Praktiken und Mittel zu ihrer Durchsetzung gehen Hand in Hand. In einigen Kontexten, wie beispielsweise einer professionellen Programmierrolle, möchten Sie so viel Disziplin wie möglich üben. Selbst wenn Sie nur an einem Hobby-Open-Source-Projekt arbeiten, zieht es der Betreuer möglicherweise vor, standardmäßig den strikten Modus zu verwenden.

Letztendlich liegt es an Ihnen, aber es ist nützlich zu wissen, dass eine helfende Hand zur Verfügung steht. Als Programmierer sollten Sie immer nach Best Practices Ausschau halten und was Sie tun können, um sie durchzusetzen.

10 grundlegende Programmierprinzipien, die jeder Programmierer kennen muss

Ihr Code sollte klar und leicht zu warten sein. Hier sind einige andere Programmierprinzipien, die Ihnen helfen, Ihre Handlung zu bereinigen.

Weiter lesen

TeilenTweetEmail
Verwandte Themen
  • Programmierung
  • JavaScript
  • Web Entwicklung
  • Programmiersprachen
Über den Autor
Bobby Jack (62 veröffentlichte Artikel)

Bobby ist ein Technologie-Enthusiast, der fast zwei Jahrzehnte als Software-Entwickler gearbeitet hat. Er hat eine Leidenschaft für Spiele, arbeitet als Chefredakteur beim Switch Player Magazine und ist in alle Aspekte des Online-Publishing und der Webentwicklung vertieft.

Mehr von Bobby Jack

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren