Globalūs kintamieji ir funkcijų parametrai JavaScript
Tarkime, kad turime funkciją, kuri priima skaičių kaip parametrą:
function func(localNum) {
console.log(localNum);
}
Tarkime, kad už funkcijos ribų yra kintamasis num:
function func(localNum) {
console.log(localNum);
}
let num = 1; // išorinis globalus kintamasis
Iškvieskime mūsų funkciją, perduodant jai
kintamąjį num kaip parametrą:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // iškviečiame funkciją su parametru, išves 1
Taip atsitiks, kad funkcijos viduje bus prieinamas
ir kintamasis localNum (funkcijos
parametras), ir kintamasis num (kaip
išorinis kintamasis):
function func(localNum) {
console.log(num); // išves 1
console.log(localNum); // išves 1
}
let num = 1;
func(num);
Pats kintamasis localNum bus funkcijos
lokalus kintamasis ir nebus prieinamas iš išorės:
function func(localNum) {
}
let num = 1;
func(num); // iškviečiame funkciją su parametru
console.log(localNum); // išmes klaidą
Kadangi kintamasis localNum yra lokalus,
tai jokie jo pakeitimai nieko nepakeis iš išorės:
function func(localNum) {
localNum = 2; // nieko nekeičia iš išorės
}
let num = 1;
func(num);
Jei pakeisime funkcijos viduje kintamąjį num
(globalų), tai pakeitimai pasirodys ir iš išorės:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // išves 2
Tačiau, jei funkcijos viduje deklaruosime
kintamąjį num naudodami let, tai
mes tokiu būdu sukursime lokalų kintamąjį
num, kuris niekaip neveikia išorinio
kintamojo:
function func(localNum) {
let num = 2; // deklaruosime naudodami let
}
let num = 1;
func(num);
console.log(num); // išves 1 - niekas nepasikeitė
Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:
function func(localNum) {
console.log(localNum);
}
func(1);
Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);