Ich bin neu in Javascript. Ich lerne das Konzept des Hebens in Javascript.
Basierend auf den Javacsript-Tutorials auf der Mozilla- Website bin ich auf dieses Wort gestoßen hoisting
. Laut diesen Tutorials können Sie in JavaScript auf eine später deklarierte Variable verweisen, ohne eine Ausnahme zu erhalten . Meine Frage ist jedoch, unter welchen Umständen das Heben in einem clientseitigen Javascript geeignet ist oder warum wir das Heben in Javascript verwenden sollten. Was sind seine Vorteile.
javascript
Rudra
quelle
quelle
Antworten:
Ich habe noch nie den Begriff "Heben" gehört. Wenn Sie sich auf diese Verwendung des Hebens von Ben Cherry beziehen: http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html , dann wiederholt er, soweit ich das beurteilen kann, einfach Douglas Crockford aus Javascript: The Gute Teile und sagen, dass Sie niemals Heben verwenden sollten . Seine Behauptung am Ende ist, dass alle Variablen am Anfang Ihrer Funktion deklariert werden sollten (wie Crockford und JSLint vorschlagen).
Oder, in den Worten von Herrn ChristopherBrown, es ist keine Funktion, die man verwenden kann, sondern einfach eine Eigenart, die sich darauf bezieht, wie der Browser Javascript interpretiert.
Kurz gesagt: niemals und nirgendwo .
quelle
Das Heben beschreibt eine Funktion, wie Javascript vom Browser interpretiert wird, und ist weniger eine zu verwendende Funktion.
Bei der Interpretation von Javascript reichen Browser Variablen auf Funktionsebene am Anfang der Funktion ein. Beispiel:
Im veröffentlichten Code sind beide Variablen "zwei" und "Ergebnis" zu Beginn des Funktionsumfangs vorhanden (offensichtlich, wie sie dort deklariert sind). Da die Browser die Variablen jedoch "hochziehen", wird der folgende Code zu legalem Javascript-Code .
Der Nettoeffekt hierbei ist, dass Sie Variablen verwenden, bevor Sie sie deklarieren. Dies kann zu Verwirrung führen, insbesondere bei Variablen mit globalem Gültigkeitsbereich. Beispiel:
Um Verwirrung zu vermeiden, deklarieren Sie Ihre Variablen oben in einer Funktion.
quelle
Warum?
JavaScript muss nicht blockieren Scope , die erklären sollte , warum die Dinge sollten Flaschenzug nach oben.
Ist es nützlich?
Wenn Sie dies bevorzugen:
An Stelle von:
Dann ist es nützlich. Auch wenn Sie es nicht bemerken!
Klarstellung
Das erste Beispiel wird in etwa so übersetzt:
quelle