JavaScriptin nostaminen (esimerkkejä)

Tässä opetusohjelmassa opit JavaScript-nostosta esimerkkien avulla.

Nosto JavaScriptissä on käyttäytymistä, jossa funktiota tai muuttujaa voidaan käyttää ennen ilmoitusta. Esimerkiksi,

 // using test before declaring console.log(test); // undefined var test;

Yllä oleva ohjelma toimii ja tulos on määrittelemätön. Yllä oleva ohjelma käyttäytyy kuten

 // using test before declaring var test; console.log(test); // undefined

Koska muuttujatesti ilmoitetaan vain eikä sillä ole arvoa, undefinedsille annetaan arvo.

Jos haluat lisätietoja muuttujista, käy JavaScript-muuttujissa.

Huomaa : Vaikka näyttää siltä, ​​että julistus on siirtynyt ohjelmassa ylöspäin, tapahtuu itse asiassa se, että funktio ja muuttujan ilmoitukset lisätään muistiin kääntövaiheen aikana.

Muuttuva nostaminen

Muuttujien ja vakioiden suhteen avainsana varnostetaan leteikä constse salli nostamista.

Esimerkiksi,

 // program to display value a = 5; console.log(a); var a; // 5

Yllä olevassa esimerkissä muuttujaa a käytetään ennen sen ilmoittamista. Ja ohjelma toimii ja näyttää lähdön 5. Ohjelma käyttäytyy seuraavasti:

 // program to display value var a; a = 5; console.log(a); // 5

Alustuksia ei kuitenkaan nosteta JavaScript-ohjelmassa. Esimerkiksi,

 // program to display value console.log(a); var a = 5;

Tuotos

 undefined

Yllä oleva ohjelma käyttäytyy seuraavasti:

 var a; console.log(a); a = 5;

Vain ilmoitus siirretään muistiin kääntövaiheessa. Siksi muuttujan a arvo johtuu undefinedsiitä, että a tulostetaan muuttamatta sitä.

Lisäksi kun muuttujaa käytetään funktion sisällä, muuttuja nostetaan vain funktion yläosaan. Esimerkiksi,

 // program to display value var a = 4; function greet() ( b = 'hello'; console.log(b); // hello var b; ) greet(); // hello console.log(b);

Tuotos

 hei Uncaught ReferenceError: b ei ole määritelty

Yllä olevassa esimerkissä muuttuja b nostetaan funktion yläosaan greetja siitä tulee paikallinen muuttuja. Siksi b on käytettävissä vain toiminnon sisällä. b: stä ei tule globaalia muuttujaa.

Lisätietoja paikallisista ja globaaleista muuttujista on JavaScript-muuttujan laajuudessa.

Huomaa : Nostossa muuttujailmoitus on käytettävissä vain välittömässä laajuudessa.

Jos letavainsanan kanssa käytetään muuttujaa, kyseistä muuttujaa ei nosteta. Esimerkiksi,

 // program to display value a = 5; console.log(a); let a; // error

Tuotos

 Uncaught ReferenceError: A-kirjainta ei voi käyttää ennen alustusta

Käytettäessä letmuuttuja on ilmoitettava ensin.

Toiminnon nostaminen

Funktio voidaan kutsua ennen sen ilmoittamista. Esimerkiksi,

 // program to print the text greet(); function greet() ( console.log('Hi, there.'); )

Tuotos

 Hei siellä

Yllä olevassa ohjelmassa funktio greetkutsutaan ennen sen ilmoittamista ja ohjelma näyttää lähdön. Tämä johtuu nostamisesta.

Kun funktiota käytetään lausekkeena , tapahtuu virhe, koska vain ilmoitukset nostetaan. Esimerkiksi;

 // program to print the text greet(); let greet = function() ( console.log('Hi, there.'); )

Tuotos

 Uncaught ReferenceError: tervehdystä ei ole määritelty

Jos varsitä käytettäisiin yllä olevassa ohjelmassa, virhe olisi:

 Uncaught TypeError: tervehdys ei ole funktio

Huomaa : Yleensä nostoa ei suoriteta muilla ohjelmointikielillä, kuten Python, C, C ++, Java.

Nosto voi aiheuttaa ei-toivottuja tuloksia ohjelmassasi. Ja on parasta ilmoittaa muuttujat ja toiminnot ensin ennen niiden käyttöä ja välttää nostamista.

Muuttujien tapauksessa on parempi käyttää letkuin var.

Mielenkiintoisia artikkeleita...