100 JavaScript Interview
100 JavaScript Interview
function myFunction() {
var hello = "hello";
}
console.log(greeter);
function myFunction() {
var hello = "hello";
}
console.log(hello);
Observăm ca vom avea o erorare la afișare (hello is not defined) deoarece variabila hello este delcarată
doar în interiorul funcției ceea ce înseamnă că nu o pot apela înafara ei.
O altă proprietate este faptul ca variabilele declarate cu var pot fi redeclarate, exemplu:
Observăm că variabila s-a suprascris și acum va fi afișat ,, good morning” în loc de ,, hey hi “ .
console.log(greeter);
var greeter = "hey hi";
Observăm că valoarea afișată de consolă este undefined deoarece comportamentul specific limbajului
JS este de a muta declararea de variabile și funcții la începutul contextului de execuție(faza de
inițializare), înainte ca codul să fie executat în mod secvențial. Aceasta înseamnă că poți acesa o variabilă
delcarată sau o funcție definite înainte de a fi declarată în cod.
Deci varianta de mai sus va fi percepută ca:
var greeter;
console.log(greeter);
greeter = "hey hi";
Cu același rezultat.
Motivul pentru care variabilele var nu sunt folosite de dezvoltatorii software în majoritatea proiectelor
pe care lucrează este faptul ca nu au control asupra lor în interiorul blocurilor de cod. Exemplu:
if (true) {
var greeter = "say hello";
}
console.log(greeter);
Observăm că afișarea variabilei depinde de declararea din blocul de cod pentru că aceasta se va
suprascrie și consola va afișa a 2 a declarare.
Imaginează