Detaillierte Erklärung der Unterschiede zwischen var, let und const in JavaScript es6

Detaillierte Erklärung der Unterschiede zwischen var, let und const in JavaScript es6

Zunächst stellt sich häufig die Frage: Welche Beziehung besteht zwischen ECMAScript und JavaScript?

ECMAScript ist eine international standardisierte Skriptsprache. JavaScript besteht aus ECMAScript, DOM und BOM. Vereinfacht lässt es sich so verstehen: ECMAScript ist die Sprachspezifikation von JavaScript und JavaScript ist die Implementierung und Erweiterung von ECMAScript.

Im Jahr 2011 wurde ECMAScript Version 5.1 veröffentlicht. Die meisten von uns haben schon ES5 verwendet.

Im Juni 2015 wurde ECMAScript 6 offiziell verabschiedet und wurde zum internationalen Standard.

1. Blockbereich {}

Die Bereiche in ES5 sind: globaler Bereich und Funktionsbereich. Es gibt kein Konzept des Blockbereichs.

Der Blockbereich wurde in ES6 hinzugefügt. Der Blockbereich wird durch {} eingeschlossen, und die {} in if- und for-Anweisungen gehören ebenfalls zum Blockbereich.

<Skripttyp="text/javascript">
	
    {
        var a = 1;
        konsole.log(a); // 1
    }
    konsole.log(a); // 1
    // Auf durch var definierte Variablen kann über Blockbereiche hinweg zugegriffen werden.
 
    (Funktion A() {
        var b = 2;
        console.log(b); // 2
    })();
    // console.log(b); // Fehler,
    // Es ist ersichtlich, dass auf durch var definierte Variablen nicht über Funktionsbereiche hinweg zugegriffen werden kann if(true) {
        var c = 3;
    }
    console.log(c); // 3
    für(var i = 0; i < 4; i++) {
        var d = 5;
    };
    console.log(i); // 4 (i ist am Ende der Schleife bereits 4, also ist i hier 4)
    konsole.log(d); // 5
    // Auf mit var in if-Anweisungen und for-Anweisungen definierte Variablen kann von außen zugegriffen werden.
    // Es ist ersichtlich, dass if- und for-Anweisungen zum Blockbereich und nicht zum Funktionsbereich gehören.
 
</Skript>

2. Der Unterschied zwischen var, let und const

  1. Durch var definierte Variablen haben kein Blockkonzept und können blockübergreifend, aber nicht funktionsübergreifend aufgerufen werden.
  2. Auf durch let definierte Variablen kann nur im Blockbereich zugegriffen werden, nicht über Blöcke oder Funktionen hinweg.
  3. const wird zum Definieren von Konstanten verwendet, die bei Verwendung initialisiert werden müssen (d. h. denen ein Wert zugewiesen werden muss), nur im Blockbereich zugänglich sind und nicht geändert werden können.
<Skripttyp="text/javascript">
    // Blockbereich {
        var a = 1;
        sei b = 2;
        Konstante c = 3;
        // c = 4; // Fehler var aa;
        lass bb;
        // const cc; // Fehler console.log(a); // 1
        console.log(b); // 2
        console.log(c); // 3
        console.log(aa); // undefiniert
        console.log(bb); // undefiniert
    }
    konsole.log(a); // 1
    // console.log(b); // Fehler // console.log(c); // Fehler // Funktionsumfang (Funktion A() {
        var d = 5;
        sei e = 6;
        Konstante f = 7;
        konsole.log(d); // 5
        console.log(e); // 6  
        console.log(f); // 7 
 
    })();
    // console.log(d); // Fehler // console.log(e); // Fehler // console.log(f); // Fehler</script>

3. Können die durch const definierten Objekteigenschaften geändert werden?

Dies ist eine Frage, die mir heute während eines Interviews gestellt wurde. Es hieß, dass const nicht geändert werden kann, also habe ich sofort nein gesagt. Nachdem ich es jedoch tatsächlich getestet hatte, stellte ich fest, dass es falsch war, also habe ich es hier aufgezeichnet.

 const person = {
     Name: 'jiuke',
     Geschlecht: „männlich“
 }
 
 person.name = "Test"
 
 Konsole.log(Person.Name)

Wenn wir den obigen Code ausführen, stellen wir fest, dass das Namensattribut des Personenobjekts tatsächlich geändert wurde. Was ist los?

Da das Objekt ein Referenztyp ist, wird nur der Zeiger auf das Objekt persönlich gespeichert. Das bedeutet, dass const nur garantiert, dass sich der Zeiger nicht ändert. Durch Ändern der Eigenschaften des Objekts wird der Zeiger des Objekts nicht geändert, daher ist dies zulässig. Das heißt, solange sich der Zeiger des durch const definierten Referenztyps nicht ändert, sind alle anderen Änderungen zulässig.

Dann versuchen wir, den Zeiger zu ändern, damit die Person auf ein neues Objekt zeigen kann, und es wird ein Fehler zurückgegeben.

const person = {
   Name: 'jiuke',
   Geschlecht: „männlich“
}
 
Person = {
   Name: "Test",
   Geschlecht: „männlich“
}

Dies ist das Ende dieses Artikels über die detaillierte Fallanalyse der Unterschiede zwischen var, let und const in JavaScript es6. Weitere Informationen zu den Unterschieden zwischen var, let und const in JavaScript es6 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung des Unterschieds zwischen var, let und const in JavaScript
  • Was sind die Unterschiede zwischen var let const in JavaScript
  • Detaillierte Erklärung der Unterschiede und Verwendung von var in JavaScript und let und const in ES6-Spezifikationen
  • Verstehen Sie den Unterschied zwischen den Schlüsselwörtern let, var und const in JavaScript
  • Der Unterschied zwischen let, const und var in der JavaScript ES6-Syntax

<<:  Eine kurze Diskussion über die Simulation von Multithread- und Multiprozess-Abstürzen in Linux

>>:  Vollständige MySQL-Sicherung und schnelle Wiederherstellungsmethoden

Artikel empfehlen

Zusammenfassung von fünf Befehlen zum Überprüfen des Swap-Speichers in Linux

Vorwort Unter Linux können zwei Arten von Swap-Sp...

Grundlegende Hinweise zu HTML und CSS (unbedingt für das Frontend lesen)

Als ich zum ersten Mal mit HTML in Berührung kam,...

Beispielcode zur Implementierung des Seiten-Cachings im Vue-Mobilprojekt

Hintergrund Auf Mobilgeräten ist das Caching zwis...

Eine kurze Diskussion über den magischen Schrägstrich im Nginx Reverse Proxy

Beim Konfigurieren des Nginx-Reverse-Proxys könne...

15 Linux-Befehlsaliase, die Ihnen Zeit sparen

Vorwort Bei der Verwaltung und Wartung des Linux-...

Erfahren Sie mehr über die MySQL-Speicher-Engine

Inhaltsverzeichnis Vorwort 1. MySQL-Hauptspeicher...

Diagramm der Installationszusammenfassung für MySQL 8.0.11

Installationsumgebung: CAT /etc/os-release Zeigt ...

Mysql-Abfrageanweisung mit mehreren Bedingungen und dem Schlüsselwort „And“

MySQL-Abfrage mit mehreren Bedingungen und dem Sc...

Tutorial zur Installation von MySQL 5.7.18 unter Windows 10

In diesem Tutorial erfahren Sie alles über die In...

Beispielcode zur Implementierung von Neon-Button-Animationseffekten mit CSS3.0

Heute zeige ich Ihnen einen Neon-Button-Animation...

Installieren Sie Ethereum/Ethereum von Grund auf unter CentOS7

Inhaltsverzeichnis Vorwort Fügen Sie Sudo-Schreib...

Unglaubliche CSS-Navigationsleiste unterstreiche folgenden Effekt

Der erste Cutter in China github.com/chokcoco Hie...