Zmienne globalne i parametry funkcji w JavaScript
Załóżmy, że mamy funkcję przyjmującą jako parametr liczbę:
function func(localNum) {
console.log(localNum);
}
Załóżmy, że na zewnątrz funkcji istnieje zmienna num:
function func(localNum) {
console.log(localNum);
}
let num = 1; // zewnętrzna zmienna globalna
Wywołajmy naszą funkcję, przekazując jej
jako parametr zmienną num:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // wywołujemy funkcję z parametrem, wypisze 1
Okaże się, że wewnątrz funkcji będą dostępne
zarówno zmienna localNum (parametr
funkcji), jak i zmienna num (jako
zmienna zewnętrzna):
function func(localNum) {
console.log(num); // wypisze 1
console.log(localNum); // wypisze 1
}
let num = 1;
func(num);
Sama zmienna localNum będzie zmienną lokalną
funkcji i nie będzie dostępna na zewnątrz:
function func(localNum) {
}
let num = 1;
func(num); // wywołujemy funkcję z parametrem
console.log(localNum); // zwróci błąd
Ponieważ zmienna localNum jest lokalna,
żadne zmiany jej wartości nic nie zmienią
na zewnątrz:
function func(localNum) {
localNum = 2; // nic nie zmienia na zewnątrz
}
let num = 1;
func(num);
Jeśli natomiast zmienimy wewnątrz zmienną num
(globalną), to zmiany pojawią się również na zewnątrz:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // wypisze 2
Jednakże, jeśli wewnątrz funkcji zadeklarujemy
zmienną num przez let, to
stworzymy w ten sposób lokalną zmienną
num, niemającą żadnego wpływu na zewnętrzną
zmienną:
function func(localNum) {
let num = 2; // deklarujemy przez let
}
let num = 1;
func(num);
console.log(num); // wypisze 1 - nic się nie zmieniło
Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:
function func(localNum) {
console.log(localNum);
}
func(1);
Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);