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!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @cybor0! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
You published your First Post
You got a First Vote
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
STOP
Do not miss the last post from @steemitboard:
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit