JavaScript-Hoisting

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

Kokeile itse!

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ä

Kokeile itse!

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

Kokeile itse!

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 

Kokeile itse!

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

Kokeile itse!

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。”