În acest tutorial, veți afla despre ridicarea JavaScript cu ajutorul exemplelor.
Ridicarea în JavaScript este un comportament în care o funcție sau o variabilă pot fi utilizate înainte de declarare. De exemplu,
// using test before declaring console.log(test); // undefined var test;
Programul de mai sus funcționează și rezultatul va fi nedefinit. Programul de mai sus se comportă ca
// using test before declaring var test; console.log(test); // undefined
Deoarece testul variabilei este declarat doar și nu are valoare, undefined
i se atribuie valoare.
Dacă doriți să aflați mai multe despre variabile, accesați Variabile JavaScript.
Notă : În ridicare, deși se pare că declarația sa deplasat în sus în program, lucrul real care se întâmplă este că declarațiile funcționale și variabile sunt adăugate în memorie în timpul fazei de compilare.
Ridicarea variabilă
În ceea ce privește variabile și constante, de cuvinte cheie var
este arborat și let
și const
nu permite ridicare.
De exemplu,
// program to display value a = 5; console.log(a); var a; // 5
În exemplul de mai sus, variabila a este utilizată înainte de a o declara. Și programul funcționează și afișează ieșirea 5. Programul se comportă ca:
// program to display value var a; a = 5; console.log(a); // 5
Cu toate acestea, în JavaScript, inițializările nu sunt ridicate. De exemplu,
// program to display value console.log(a); var a = 5;
Ieșire
nedefinit
Programul de mai sus se comportă ca:
var a; console.log(a); a = 5;
Doar declarația este mutată în memorie în faza de compilare. Prin urmare, valoarea variabilei a se undefined
datorează faptului că a este tipărită fără a o inițializa.
De asemenea, atunci când variabila este utilizată în interiorul funcției, variabila este ridicată doar în partea de sus a funcției. De exemplu,
// program to display value var a = 4; function greet() ( b = 'hello'; console.log(b); // hello var b; ) greet(); // hello console.log(b);
Ieșire
salut Uncaught ReferenceError: b nu este definit
În exemplul de mai sus, variabila b este ridicată în partea de sus a funcției greet
și devine o variabilă locală. Prin urmare, b este accesibil numai în interiorul funcției. b nu devine o variabilă globală.
Pentru a afla mai multe despre variabilele locale și globale, accesați JavaScript Variable Scope.
Notă : la ridicare, declarația variabilă este accesibilă doar pentru domeniul imediat.
Dacă o variabilă este utilizată cu let
cuvântul cheie, variabila respectivă nu este ridicată. De exemplu,
// program to display value a = 5; console.log(a); let a; // error
Ieșire
Uncaught ReferenceError: Nu se poate accesa „a” înainte de inițializare
În timpul utilizării let
, variabila trebuie declarată mai întâi.
Funcția de ridicare
O funcție poate fi apelată înainte de a o declara. De exemplu,
// program to print the text greet(); function greet() ( console.log('Hi, there.'); )
Ieșire
Bună
În programul de mai sus, funcția greet
este apelată înainte de a o declara și programul arată ieșirea. Acest lucru se datorează ridicării.
Cu toate acestea, atunci când o funcție este utilizată ca expresie , apare o eroare deoarece numai declarațiile sunt ridicate. De exemplu;
// program to print the text greet(); let greet = function() ( console.log('Hi, there.'); )
Ieșire
Uncaught ReferenceError: salut nu este definit
Dacă a var
fost utilizat în programul de mai sus, eroarea ar fi:
Uncaught TypeError: greet nu este o funcție
Notă : În general, ridicarea nu se efectuează în alte limbaje de programare precum Python, C, C ++, Java.
Ridicarea poate provoca rezultate nedorite în programul dumneavoastră. Și cel mai bine este să declarați mai întâi variabile și funcții înainte de a le utiliza și să evitați ridicarea.
În cazul variabilelor, este mai bine să folosiți let
decât var
.