JavaScript -Variablen - Was ist der Unterschied zwischen var, let und const in JavaScript?

JavaScript -Variablen - Was ist der Unterschied zwischen var, let und const in JavaScript?
In ECMAScript 2016 führte JavaScript zwei neue Methoden ein, um Variablen zu deklarieren lassen Und Const Schlüsselwörter. JavaScript hatte nur eine Option, um Variablen vor 2016 zu deklarieren i.e. Die var Stichwort. In diesem Artikel werden wir erfahren, warum es drei verschiedene Möglichkeiten gibt, Variablen in JavaScript zu deklarieren. Wir werden auch den Unterschied zwischen diesen drei Artikeln abdecken. Darüber hinaus werden Sie in diesem Artikel Konzepte wie variabler Umfang und Heben vorgestellt. Beginnen wir also damit, zu verstehen, was variabler Umfang ist:

Was ist Umfang in JavaScript?

In JavaScript wird der Umfang durch lockige Klammern definiert. Es definiert einen Codeblock, der zusammen ausgeführt werden muss. JavaScript hat zwei Arten von Scopes:

  • Funktionscope
  • Block-Scope

Funktionskope: Jede Variable in JavaScript, die in einer Funktion verwendet wurde var ist funktionsübergreifend. Seine Sichtbarkeit beschränkt sich auf die Definition der Funktion und kann nicht von überall außerhalb der Funktion zugegriffen werden:

Funktion showMessage ()
var message = 'hi von LinuxHint';
Konsole.log ("in:" + meldung); // 'Hallo, LinuxHint!''

zeige Nachricht();
Konsole.log ("out:" + meldung); ReferenzError: Nachricht ist nicht definiert

Block-Scope: Ein Codeblock in JavaScript wird durch lockige Klammern definiert. Diese Art von Umfang hilft uns dabei, zwischen den drei Methoden zur Deklarierung von Variablen prominent zu unterscheiden:

Im Folgenden finden Sie ein Beispiel, in dem wir Variablen mit VAR deklariert haben, let und konstant in einem IF -Block und haben sie dann an der Konsole angemeldet:

Wenn wahr)
var message1 = 'hi von LinuxHint';
Lassen Sie Message2 = 'Hallo aus LinuxHint';
const message3 = 'hi Again von LinuxHint';
Konsole.log ("in:" + message1); // 'Hallo aus LinuxHint';
Konsole.log ("in:" + message2); // 'Hallo von LinuxHint';
Konsole.log ("in:" + message3); // 'Hallo wieder von LinuxHint';

Alle Variablen wurden ohne Fehler an der Konsole angemeldet, da sie aus demselben Block angemeldet wurden.

Wenn wir jedoch versuchen, sie von außerhalb des IF-Blocks zu protokollieren, wird der unten erwähnte Fehler angezeigt:

Wenn wahr)
var message1 = 'hi von LinuxHint';
Lassen Sie Message2 = 'Hallo aus LinuxHint';
const message3 = 'hi Again von LinuxHint';
Konsole.log ("in:" + message1); // 'Hallo aus LinuxHint';
Konsole.log ("in:" + message2); // 'Hallo von LinuxHint';
Konsole.log ("in:" + message3); // 'Hallo wieder von LinuxHint';

Konsole.log ("out:" + message1); // 'Hallo aus LinuxHint';
Konsole.log ("out:" + message2); // ReferenzError: Message2 ist nicht definiert
Konsole.log ("out:" + message3); // ReferenceError: Message3 ist nicht definiert

So verwenden Sie VAR, um eine Variable in JavaScript zu deklarieren

Vor ECMAScript 2016 var war die einzige Methode, um eine Variable in JavaScript zu deklarieren, es war jedoch mehrere Probleme damit verbunden, sodass neue Methoden eingeführt wurden, die zur Deklarierung von Variablen verwendet werden konnten. Wir werden zuerst verstehen var Und dann werden wir über diese Probleme sprechen:

Umfang von var: Der variable Umfang bedeutet im Grunde genommen, wo die Variable zur Verwendung zur Verfügung steht. Variablen, die mit dem deklariert werden var Schlüsselwort haben entweder einen globalen oder lokalen Umfang.

Variablen, die außerhalb des Funktionsblocks deklariert werden var einen globalen Umfang haben. Globaler Umfang bedeutet, dass eine Variable verfügbar ist, die überall im Fenster verwendet werden kann.

Wenn die Variable in einer Funktion deklariert wird, wird sie funktionsübergreifend, was bedeutet, dass sie nur in der Funktion verwendet werden kann:

Um weiter zu verstehen, sehen Sie sich das folgende Beispiel an:

Funktion showMessage ()
var message = 'hi von LinuxHint';

Hier das Nachricht ist Funktion abgeschottet, sodass nicht außerhalb der Funktion zugegriffen werden kann. Also, wenn wir das tun:

Funktion showMessage ()
var message = 'hi von LinuxHint';

Konsole.log ("out:" + meldung); // ReferenzError: Die Nachricht ist nicht definiert

Dies gibt uns einen Fehler, der darauf zurückzuführen ist Nachricht ist außerhalb der Funktion nicht verfügbar.

var außerhalb eines For-Schleife: Die Variable "ich" kann von außen von außen zugreifen.

für (var i = 0; i < 5; i++)
Konsole.log ("in:" + i);

Konsole.log ("out:" + i);

VAR-Variablen können neu deklariert und aktualisiert werden: In JavaScript -Variablen mit deklariert mit var Das Schlüsselwort kann im selben Bereich neu eingebaut und aktualisiert werden:

Funktion showMessage ()
var message = 'hi von LinuxHint';
Message = 'Hallo aus LinuxHint';
var message = 'Hallo aus LinuxHint';
Konsole.log (meldung); // 'Hallo wieder von LinuxHint';

zeige Nachricht()

So verwenden Sie eine Variable in JavaScript: Deklarieren Sie eine Variable: Der lassen Schlüsselwort wird jetzt bevorzugt var für variable Erklärungen; Es kommt mit ein paar Verbesserungen über var.

Lassen Sie Block Scoped: In JavaScript ist ein Codeblock die Sammlung von Anweisungen, die durch ein Paar lockiger Klammern begrenzt sind . Eine Variable, die mit dem deklariert wurde lassen Das Schlüsselwort ist nur in diesem Block verfügbar und kann nicht von außen zugegriffen werden:

Wenn wahr)
lass message = 'hi von LinuxHint';
Konsole.log ("in:" + meldung); // "Hallo aus LinuxHint"

Konsole.log ("out:" + meldung); // ReferenzError

Wenn wir das verwenden Nachricht Außerhalb des Blocks, in dem er definiert wurde, gibt es einen Fehler zurück. Dies liegt daran, dass die Variablen blockiert werden können.

Außerhalb eines Verschleifs: Das folgende Beispiel, das das demonstrieren lassen Variable Ausgabe verwendet für Schleife:

für (lass i = 0; i < 5; i++)
Konsole.log ("in:" + i);

Konsole.log ("out:" + i);

Lassen Sie die können aktualisiert werden, aber nicht neu deklariert werden: Eine Variable mit deklariert mit lassen kann genau wie in seinem Umfang aktualisiert werden wie var, aber nicht wie var, Es kann nicht neu eingebracht werden:

lass message = 'hi von LinuxHint';
Message = 'Hallo aus LinuxHint';

Die Konsole ist völlig leer und gibt keine Fehler zurück. Diese Aussagen geben einen Fehler zurück:

lass message = 'hi von LinuxHint';
lass Message = 'Hallo von LinuxHint'; // syntaxError: identifier 'Nachricht' wurde bereits deklariert

Jedoch die gleiche Variable in einem anderen Umfang neu definieren lassen Gibt keinen Fehler zurück:

lass message = 'hi von LinuxHint';
Wenn wahr)
lass Message = 'Hallo von LinuxHint';
Konsole.log ("in:" + meldung); // "Hallo aus LinuxHint"

Konsole.log ("out:" + meldung); // "Hallo aus LinuxHint"

Der lassen Das Schlüsselwort behandelt diese beiden Variablen als unterschiedlich, wenn sie sich in verschiedenen Bereichen befinden, sodass es keinen Fehler zurückgibt. Dieses Merkmal der lassen Schlüsselwort macht es zu einer besseren Wahl als var. Beim Benutzen lassen, Sie können Variablennamen in verschiedenen Bereichen wiederverwenden, ohne sich Gedanken darüber zu machen, ob Sie diesen Variablennamen zuvor verwendet haben.

So verwenden Sie Const, um die Variable in JavaScript zu deklarieren

Die Variablen, die mit dem deklariert wurden Const Schlüsselwort haben konstante Werte. Dies bedeutet, dass ihre Werte nicht geändert/neu zugewiesen werden können. Ähnlich wie die mit der deklarierten Variablen lassen Schlüsselwort, die mit dem deklarierten Variablen var Schlüsselwort werden ebenfalls blockiert.

const kann nicht neu deklariert oder neu zugewiesen werden: Die mit dem Schlüsselwort deklarierten Variablen Const kann nicht im selben Bereich neu eingebracht oder neu zugewiesen werden. Wenn wir also eine Variable mit CONT -Keyword deklariert haben, können wir dies nicht tun:

const message = 'hi von LinuxHint';
Message = 'Hallo aus LinuxHint'; // TypeRror

Wir werden dies auch nicht können:

const message = 'hi von LinuxHint';
const message = 'Hallo aus LinuxHint'; // Syntax-Fehler

Jede Variable, die mit dem deklariert wird Const Das Schlüsselwort muss zum Zeitpunkt seiner Erklärung initialisiert werden.

Dieses Verhalten der Const Schlüsselwort ändert sich irgendwie, wenn es um Objekte geht. Während das deklarierte Objekt nicht aktualisiert werden kann, können seine Eigenschaften geändert werden

Also, wenn wir ein Objekt mit deklarieren Const:

const user =
Name: "Steve",
Alter: 13

Während dies nicht getan werden kann:

user =
Benutzername: "Harry",
Klasse: "3."
// typeerror: Zuordnung zur konstanten Variablen.

Das kann gemacht werden:

Benutzer.name = "harry";

Dies wird den Wert des Werts ändern Benutzer.Name ohne Fehler zurückzugeben.

Abschließende Prüfung

Variable Aussage Funktionscope Block-Scope Neu definierbar
var
lassen
Const

Abschluss

Es ist im Allgemeinen eine gute Praxis, die Verwendung zu vermeiden var Variablen in JavaScript zu deklarieren, da der Funktionsbereich verwirrend ist und nicht so offensichtlich ist wie der Blockbereich. Der lassen Und Const Schlüsselwörter ermutigen Entwickler, bessere Codierungspraktiken zu verwenden. Sie sollten im Allgemeinen verwenden lassen Für die Variablen, die Sie neu zuweisen und die verwenden müssen Const Schlüsselwort für alle anderen Variablen. Dieser Artikel erklärt alle drei Variablentypen mit Beispielen gründlich.