Globální proměnné a parametry funkcí v JavaScriptu
Předpokládejme, že máme funkci, která přijímá jako parametr číslo:
function func(localNum) {
console.log(localNum);
}
Předpokládejme, že mimo funkci existuje proměnná num:
function func(localNum) {
console.log(localNum);
}
let num = 1; // vnější globální proměnná
Zavolejme naši funkci a předejme jí
proměnnou num jako parametr:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // voláme funkci s parametrem, vypíše 1
Výsledkem bude, že uvnitř funkce bude přístupná
jak proměnná localNum (parametr
funkce), tak proměnná num (jako
vnější proměnná):
function func(localNum) {
console.log(num); // vypíše 1
console.log(localNum); // vypíše 1
}
let num = 1;
func(num);
Samotná proměnná localNum bude lokální
proměnnou funkce a nebude přístupná zvenčí:
function func(localNum) {
}
let num = 1;
func(num); // voláme funkci s parametrem
console.log(localNum); // způsobí chybu
Protože je proměnná localNum lokální,
žádné její změny uvnitř funkce nic nezmění
vně:
function func(localNum) {
localNum = 2; // nic nemění vně
}
let num = 1;
func(num);
Pokud však uvnitř změníme proměnnou num
(globální), změny se projeví i vně:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // vypíše 2
Pokud však uvnitř funkce deklarujeme
proměnnou num pomocí let,
vytvoříme tím lokální proměnnou
num, která nijak neovlivní vnější
proměnnou:
function func(localNum) {
let num = 2; // deklarujeme pomocí let
}
let num = 1;
func(num);
console.log(num); // vypíše 1 - nic se nezměnilo
Určete, bez spuštění kódu, co se vypíše do konzole:
function func(localNum) {
console.log(localNum);
}
func(1);
Určete, bez spuštění kódu, co se vypíše do konzole:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Určete, bez spuštění kódu, co se vypíše do konzole:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Určete, bez spuštění kódu, co se vypíše do konzole:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Určete, bez spuštění kódu, co se vypíše do konzole:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Určete, bez spuštění kódu, co se vypíše do konzole:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Určete, bez spuštění kódu, co se vypíše do konzole:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);