Zmienne globalne i parametry funkcji w JavaScript

Załóżmy, że mamy funkcję przyjmującą jako parametr liczbę:

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

Załóżmy, że na zewnątrz funkcji istnieje zmienna num:

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

let num = 1; // zewnętrzna zmienna globalna

Wywołajmy naszą funkcję, przekazując jej jako parametr zmienną num:

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

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

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

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

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

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

let num = 1;
func(num);
console.log(num); // wypisze 1 - nic się nie zmieniło
Задание 1

Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:

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

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

Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:

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

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

Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:

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

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

Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:

javascriptlet num = 1;

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

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

Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:

javascriptfunction func(localNum) {
  localNum = 2;
}

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

Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:

javascriptfunction func(localNum) {
  num = 2;
}

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

Określ, bez uruchamiania kodu, co zostanie wypisane w konsoli:

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

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