suchen
HeimWeb-Frontendjs-TutorialHUBEN IN JS (REFERENZFEHLER!!)

HOISTING IN JS (REFERENCE ERROR!!)

Heben in JavaScript verstehen

Hoisting ist eines der grundlegendsten Konzepte in JavaScript, kann jedoch für Anfänger und sogar erfahrene Entwickler Verwirrung stiften.

In diesem Blog werden wir das Heben entmystifizieren, erklären, wie es funktioniert, und klare Beispiele bereitstellen, damit Sie dieses Konzept vollständig verstehen.

Was ist Heben?

Hoisting ist ein JavaScript-Mechanismus, bei dem Deklarationen von Variablen, Funktionen und Klassen während der Kompilierungsphase an den Anfang ihres Gültigkeitsbereichs verschoben werden.

Das bedeutet, dass Sie diese Elemente verwenden können, bevor sie tatsächlich im Code deklariert werden.

Das Hochziehen funktioniert jedoch für var, let, const, Funktionen und Klassen anders, und hier kommt es oft zu Verwirrung

Wie das Heben funktioniert

Wenn JavaScript-Code ausgeführt wird, durchläuft er zwei Phasen:

  1. Kompilierungsphase: Während dieser Phase hebt die Engine Deklarationen an die Spitze ihres Gültigkeitsbereichs.

  2. Ausführungsphase: Der Code wird Zeile für Zeile ausgeführt und berücksichtigt dabei die Heberegeln.

Heberegeln für verschiedene Deklarationen

1. var

Mit var deklarierte Variablen werden angehoben, ihr Wert wird jedoch nicht initialisiert. Vor der Initialisierung werden sie auf undefiniert gesetzt.

console.log(a); // Output: undefined
var a = 10;
console.log(a); // Output: 10
  1. let und const

Variablen, die mit let und const deklariert wurden, werden ebenfalls angehoben, bleiben aber in der Temporal Dead Zone (TDZ). Auf sie kann erst zugegriffen werden, wenn ihre Deklaration im Code gefunden wird.

console.log(b); // ReferenceError: Cannot access 'b' before initialization
let b = 20;

console.log(c); // ReferenceError: Cannot access 'c' before initialization
const c = 30;
  1. Funktionen

Funktionsdeklarationen werden vollständig angehoben, was bedeutet, dass sowohl ihr Name als auch ihr Text nach oben verschoben werden. Dadurch können Sie Funktionen aufrufen, bevor sie deklariert werden.

greet(); // Output: "Hello, World!"

function greet() {
    console.log("Hello, World!");
}

Funktionsausdrücke werden jedoch unterschiedlich behandelt. Sie verhalten sich wie Variablen, die mit var, let oder const:
deklariert wurden

sayHi(); // ReferenceError: Cannot access 'sayHi' before initialization

const sayHi = function () {
    console.log("Hi!");
};
  1. Kurse

Klassen werden angehoben, bleiben aber in der Temporal Dead Zone, ähnlich wie let und const. Sie können nicht auf eine Klasse zugreifen, bevor sie deklariert wurde.

const obj = new MyClass(); // ReferenceError: Cannot access 'MyClass' before initialization

class MyClass {
    constructor() {
        this.name = "Class";
    }
}

Die Temporal Dead Zone (TDZ) verstehen

Die zeitliche Totzone ist der Zeitraum zwischen dem Beginn des Bereichs und dem Punkt, an dem die Variable deklariert wird. Während dieses Zeitraums löst jeder Zugriff auf let- oder const-Variablen einen ReferenceError aus.

Key Takeaways

Declaration   Hoisted?       Behavior Before Initialization

var            Yes              undefined

let            Yes            ReferenceError (in TDZ)

const          Yes             ReferenceError (in TDZ)

Function Declaration  Yes       Fully hoisted, works before 
declaration

Function Expression  Partially (as var)   undefined or ReferenceError (if let/const)

Class           Yes              ReferenceError (in TDZ)

Fazit

Das Verständnis des Hebens ist entscheidend für das Schreiben von sauberem und vorhersehbarem JavaScript-Code. Auch wenn es auf den ersten Blick magisch erscheinen mag, hilft Ihnen die Kenntnis der Regeln für var, let, const, Funktionen und Klassen dabei, häufige Fallstricke zu vermeiden. Deklarieren Sie Ihre Variablen und Funktionen immer am Anfang ihres Gültigkeitsbereichs, um Klarheit zu gewährleisten und die Fehlerwahrscheinlichkeit zu verringern.

Viel Spaß beim Codieren!

Das obige ist der detaillierte Inhalt vonHUBEN IN JS (REFERENZFEHLER!!). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Ersetzen Sie Stringzeichen in JavaScriptErsetzen Sie Stringzeichen in JavaScriptMar 11, 2025 am 12:07 AM

Detaillierte Erläuterung der Methode für JavaScript -Zeichenfolge und FAQ In diesem Artikel werden zwei Möglichkeiten untersucht, wie String -Zeichen in JavaScript ersetzt werden: Interner JavaScript -Code und interne HTML für Webseiten. Ersetzen Sie die Zeichenfolge im JavaScript -Code Die direkteste Möglichkeit ist die Verwendung der Ersatz () -Methode: str = str.replace ("find", "ersetzen"); Diese Methode ersetzt nur die erste Übereinstimmung. Um alle Übereinstimmungen zu ersetzen, verwenden Sie einen regulären Ausdruck und fügen Sie das globale Flag G hinzu:: STR = Str.Replace (/fi

Benutzerdefinierte Google -Search -API -Setup -TutorialBenutzerdefinierte Google -Search -API -Setup -TutorialMar 04, 2025 am 01:06 AM

Dieses Tutorial zeigt Ihnen, wie Sie eine benutzerdefinierte Google -Such -API in Ihr Blog oder Ihre Website integrieren und ein raffinierteres Sucherlebnis bieten als Standard -WordPress -Themen -Suchfunktionen. Es ist überraschend einfach! Sie können die Suche auf y beschränken

Erstellen Sie Ihre eigenen AJAX -WebanwendungenErstellen Sie Ihre eigenen AJAX -WebanwendungenMar 09, 2025 am 12:11 AM

Hier sind Sie also bereit, alles über dieses Ding namens Ajax zu lernen. Aber was genau ist das? Der Begriff AJAX bezieht sich auf eine lose Gruppierung von Technologien, mit denen dynamische, interaktive Webinhalte erstellt werden. Der Begriff Ajax, ursprünglich von Jesse J geprägt

Beispielfarben JSON -DateiBeispielfarben JSON -DateiMar 03, 2025 am 12:35 AM

Diese Artikelserie wurde Mitte 2017 mit aktuellen Informationen und neuen Beispielen umgeschrieben. In diesem JSON -Beispiel werden wir uns ansehen, wie wir einfache Werte in einer Datei mit JSON -Format speichern können. Mit der Notation des Schlüsselwertpaares können wir jede Art speichern

8 atemberaubende JQuery -Seiten -Layout -Plugins8 atemberaubende JQuery -Seiten -Layout -PluginsMar 06, 2025 am 12:48 AM

Nutzen Sie JQuery für mühelose Webseiten -Layouts: 8 Essential Plugins JQuery vereinfacht das Webseitenlayout erheblich. In diesem Artikel werden acht leistungsstarke JQuery -Plugins hervorgehoben, die den Prozess optimieren, insbesondere nützlich für die manuelle Website -Erstellung

Was ist ' this ' in JavaScript?Was ist ' this ' in JavaScript?Mar 04, 2025 am 01:15 AM

Kernpunkte Dies in JavaScript bezieht sich normalerweise auf ein Objekt, das die Methode "besitzt", aber es hängt davon ab, wie die Funktion aufgerufen wird. Wenn es kein aktuelles Objekt gibt, bezieht sich dies auf das globale Objekt. In einem Webbrowser wird es durch Fenster dargestellt. Wenn Sie eine Funktion aufrufen, wird das globale Objekt beibehalten. Sie können den Kontext mithilfe von Methoden wie CALL (), Apply () und Bind () ändern. Diese Methoden rufen die Funktion mit dem angegebenen Wert und den Parametern auf. JavaScript ist eine hervorragende Programmiersprache. Vor ein paar Jahren war dieser Satz

Verbessern Sie Ihr JQuery -Wissen mit dem Quell BetrachterVerbessern Sie Ihr JQuery -Wissen mit dem Quell BetrachterMar 05, 2025 am 12:54 AM

JQuery ist ein großartiges JavaScript -Framework. Wie in jeder Bibliothek ist es jedoch manchmal notwendig, unter die Motorhaube zu gehen, um herauszufinden, was los ist. Vielleicht liegt es daran, dass Sie einen Fehler verfolgen oder nur neugierig darauf sind, wie JQuery eine bestimmte Benutzeroberfläche erreicht

10 Mobile Cheat Sheets für die mobile Entwicklung10 Mobile Cheat Sheets für die mobile EntwicklungMar 05, 2025 am 12:43 AM

Dieser Beitrag erstellt hilfreiche Cheat -Blätter, Referenzführer, schnelle Rezepte und Code -Snippets für die Entwicklung von Android-, Blackberry und iPhone -App. Kein Entwickler sollte ohne sie sein! Touch Gesten -Referenzhandbuch (PDF) Eine wertvolle Ressource für Desig

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)