Globálne premenné a parametre funkcií v JavaScripte

Majme funkciu, ktorá ako parameter prijíma číslo:

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

Predpokladajme, že mimo funkcie existuje premenná num:

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

let num = 1; // externá globálna premenná

Zavolajme našu funkciu a odovzdajme jej premennú num ako parameter:

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

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

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

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

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

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

let num = 1;
func(num);
console.log(num); // vypíše 1 - nič sa nezmenilo
Задание 1

Určte, bez spustenia kódu, čo sa vypíše do konzoly:

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

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

Určte, bez spustenia kódu, čo sa vypíše do konzoly:

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

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

Určte, bez spustenia kódu, čo sa vypíše do konzoly:

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

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

Určte, bez spustenia kódu, čo sa vypíše do konzoly:

javascriptlet num = 1;

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

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

Určte, bez spustenia kódu, čo sa vypíše do konzoly:

javascriptfunction func(localNum) {
  localNum = 2;
}

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

Určte, bez spustenia kódu, čo sa vypíše do konzoly:

javascriptfunction func(localNum) {
  num = 2;
}

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

Určte, bez spustenia kódu, čo sa vypíše do konzoly:

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

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