JavaScript-Hoisting
- Edellinen sivu JS-ala-alue
- Seuraava sivu JS-strict mode
Nostaminen (Hoisting) on JavaScriptin oletusarvoinen käyttäytyminen, jossa ilmoitukset siirretään ylös.
JavaScriptin ilmoitukset nostetaan
JavaScriptissä voidaan ilmoittaa muuttujaa sen jälkeen, kun sitä on käytetty.
Toisin sanoen, voidaan käyttää sitä ennen sen ilmoittamista.
Esimerkki 1 jaEsimerkki 2 tuloksia ovat samanlaisia:
Esimerkki 1
x = 5; // Aseta 5 x:lle elem = document.getElementById("demo"); // Etsi elementti elem.innerHTML = x; // Näytä x elementissä var x; // Ilmoita x
Esimerkki 2
var x; // Ilmoita x x = 5; // Aseta 5 x:lle elem = document.getElementById("demo"); // Etsi elementti elem.innerHTML = x; // Näytä x elementissä
Jotta voit ymmärtää tämän, sinun täytyy ymmärtää termi "hoisting".
Hoisting on JavaScriptin oletusarvoinen käyttäytyminen, jossa kaikki ilmoitukset nostetaan nykyisen toimialueen yläpuolelle (nostetaan nykyisen skriptin tai nykyisen funktion yläpuolelle).
let ja const -avainsanoja
käytä let
tai const
Ilmoitettujen muuttujien ja muuttujien alustukset eivät ole nostettuja!
Ole hyvä ja JS Let / Const Lue lisää let ja const -sanan sisällöstä täällä.
JavaScriptin alustukset eivät ole nostettuja
JavaScript nostaa vain ilmoitukset, ei alustuksia.
Esimerkki 1 jaEsimerkki 2 tuloksia eivät ole samanlaisia:
Esimerkki 1
var x = 5; // Alustaa x var y = 7; // Alusta y elem = document.getElementById("demo"); // Etsi elementti elem.innerHTML = x + " " + y; // Näytä x ja y
Esimerkki 2
var x = 5; // Alustaa x elem = document.getElementById("demo"); // Etsi elementti elem.innerHTML = x + " " + y; // Näytä x ja y var y = 7; // Alusta y
Voiko sanoa, että viimeisimmässä esimerkissä y on edelleen määrittelemätön?
Tämä johtuu siitä, että vain ilmoitus (var y) ei ole alustettu (=7) nostettu ylös.
Koska hoisting, y on jo määritelty ennen kuin sitä käytetään, mutta koska alustusta ei ole nostettu, y:n arvo on edelleen määrittelemätön.
Esimerkki 2 on myös sama:
Esimerkki
var x = 5; // Alustaa x var y; // Määritä y elem = document.getElementById("demo"); // Etsi elementti elem.innerHTML = x + " " + y; // Näytä x ja y y = 7; // Aseta 7 y:lle
Määrittele muuttujasi ylös!
Hoisting (monille kehittäjille) on tuntematon tai laiminlyöty käyttäytyminen JavaScriptissä.
Jos kehittäjä ei ymmärrä hoistingia, ohjelmassa saattaa olla virheitä (virheitä).
Välttääksesi virheet, määrittele aina kaikki muuttujat alueen alussa.
Koska tämä on JavaScriptin koodin tulkintatapa, pidä tämä hyvä tapa.
Strict mode ei salli muuttujien käyttöä ilman määrittelyä JavaScriptissä.
Opit lisää seuraavassa luvussa:use strict。”
- Edellinen sivu JS-ala-alue
- Seuraava sivu JS-strict mode