Deklaracja zmiennych i stałych w JavaScript przed ES6
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.
@cybor0, I gave you a vote!
If you follow me, I will also follow you in return!
Congratulations @cybor0! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word
STOPDo not miss the last post from @steemitboard: