Deklaracja zmiennych i stałych w JavaScript przed ES6

cybor0(37)
Published in
#polish
Words
159
Reading
1 min
Listen
Play
8y

js.png

Przed pojawieniem się ES6

Zmienne - deklaracja zmiennych w JavaScript do momentu pojawienia się ES6 była możliwa przy użyciu słowa kluczowego "var". Zmienne z deklaracją "var" mają zasięg funkcyjny, są hoistowane.

Deklaracja

var magicNumber = 12;

Hositing

console.log(magicNumber); //undefined
var magicNumber = 12;

co odpowiada interpretacji jak poniżej

var magicNumber;
console.log(magicNumber); //undefined
magicNumber = 12;

Zasięg funkcyjny

var magicNumber; //zasięg globalny
function runCode() {
  var magicNumber = "12"; //magicNumber z var zasięg funkcyjny lokalny
  console.log(magicNumber);
}
runCode();
console.log(magicNumber);
//12
//undefined

Pominięcie var - zmienna przypisywana do zasięgu globalnego jeśli wyłączony "use strict" -
pominięcie słowa kluczowego "var" wewnątrz funkcji powoduje utworzenie zmiennej w zasięgu globalnym. Czyli w przypadku browsera w obiekcie window, w przypadku nodejs w obiekcie global.

//zasięg globalny var magicNumber;
function runCode() {
  magicNumber = "12"; //magicNumber bez var zasięg globalny
  console.log(magicNumber);
}
runCode();
console.log(magicNumber);
console.log(window.magicNumber);
//12
//12
//12

Pominięcie var - zmienna nie przypisywana do zasięgu globalnego jeśli włączony "use strict" - pominięcie słowa kluczowego "var" wewnątrz funkcji nie powoduje utworzeniaz miennej w zasięgu globalnym z wyłączonym "use strict".

"use strict"
//zasięg globalny nie powstanie var magicNumber;
function runCode() {
  magicNumber = "12"; //magicNumber zgłoszony error
  console.log(magicNumber);
}
runCode();
console.log(magicNumber);
console.log(window.magicNumber);
//Uncaught ReferenceError: magicNumber is not defined

Stałe – nie istniały, dlatego często symbolizowało się je z wykorzystaniem odpowiednio zapisanej nazwy zmiennej, w tak zwanej notacji ALL_CAPS. Nic nie stało na przeszkodzie żeby stosować inne notacje, ale umownie dla odróżnienia zmiennej od stałej używano ALL_CAPS.

var MY_PI = 3.14;

Deklaracja zmiennych i stałych w JavaScript w ES6 niebawem.

Deklaracja zmiennych i stałych w JavaScript przed ES6 | Ecency