Globálne premenné a parametre funkcií v JavaScripte
Majme funkciu, ktorá ako parameter prijíma číslo:
function func(localNum) {
console.log(localNum);
}
Predpokladajme, že mimo funkcie existuje premenná num:
function func(localNum) {
console.log(localNum);
}
let num = 1; // externá globálna premenná
Zavolajme našu funkciu a odovzdajme jej
premennú num ako parameter:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // voláme funkciu s parametrom, vypíše 1
Výsledkom bude, že vo vnútri funkcie bude dostupná
ako premenná localNum (parameter
funkcie), tak aj premenná num (ako
externá premenná):
function func(localNum) {
console.log(num); // vypíše 1
console.log(localNum); // vypíše 1
}
let num = 1;
func(num);
Samotná premenná localNum bude lokálnou
premennou funkcie a nebude dostupná zvonku:
function func(localNum) {
}
let num = 1;
func(num); // voláme funkciu s parametrom
console.log(localNum); // vyhodí chybu
Keďže premenná localNum je lokálna,
žiadne zmeny s ňou nič nezmenia
zvonku:
function func(localNum) {
localNum = 2; // nic nemení vonku
}
let num = 1;
func(num);
Ak sa však zmení premenná num vo vnútri
(globálna), zmeny sa prejavia aj navonok:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // vypíše 2
Avšak, ak vo vnútri funkcie deklarujeme
premennú num pomocou let,
tým vytvoríme lokálnu premennú
num, ktorá žiadnym spôsobom neovplyvňuje externú
premennú:
function func(localNum) {
let num = 2; // deklarujeme cez let
}
let num = 1;
func(num);
console.log(num); // vypíše 1 - nič sa nezmenilo
Určte, bez spustenia kódu, čo sa vypíše do konzoly:
function func(localNum) {
console.log(localNum);
}
func(1);
Určte, bez spustenia kódu, čo sa vypíše do konzoly:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Určte, bez spustenia kódu, čo sa vypíše do konzoly:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Určte, bez spustenia kódu, čo sa vypíše do konzoly:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Určte, bez spustenia kódu, čo sa vypíše do konzoly:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Určte, bez spustenia kódu, čo sa vypíše do konzoly:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Určte, bez spustenia kódu, čo sa vypíše do konzoly:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);