Deklaracja zmiennych i stałych w JavaScript przed ES6

in polish •  6 years ago  (edited)

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.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

@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) :

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:

SteemitBoard Ranking update - Resteem and Resteemed added

Support SteemitBoard's project! Vote for its witness and get one more award!