Globalūs kintamieji ir funkcijų parametrai JavaScript

Tarkime, kad turime funkciją, kuri priima skaičių kaip parametrą:

javascriptfunction func(localNum) {
  console.log(localNum);
}

Tarkime, kad už funkcijos ribų yra kintamasis num:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1; // išorinis globalus kintamasis

Iškvieskime mūsų funkciją, perduodant jai kintamąjį num kaip parametrą:

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

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction func(localNum) {
  let num = 2; // deklaruosime naudodami let
}

let num = 1;
func(num);
console.log(num); // išves 1 - niekas nepasikeitė
Задание 1

Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:

javascriptfunction func(localNum) {
  console.log(localNum);
}

func(1);
Задание 2

Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1;
func(num);
Задание 3

Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1;
func(num);
num = 2;
Задание 4

Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:

javascriptlet num = 1;

function func(localNum) {
  console.log(localNum);
}

num = 2;
func(num);
Задание 5

Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:

javascriptfunction func(localNum) {
  localNum = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 6

Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 7

Nustatykite, neleisdami kodui, kas bus atspausdinta konsolėje:

javascriptfunction func(localNum) {
  let num = 2;
}

let num = 1;
func(num);
console.log(num);