Globalne promenljive i parametri funkcija u JavaScriptu

Neka imamo funkciju koja prima broj kao parametar:

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

Neka izvan funkcije postoji promenljiva num:

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

let num = 1; // spoljašnja globalna promenljiva

Hajde da pozovemo našu funkciju, prosledivši joj promenljivu num kao parametar:

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

let num = 1;
func(num); // pozivamo funkciju sa parametrom, ispisuje 1

Ispostavlja se da će unutar funkcije biti dostupna i promenljiva localNum (parametar funkcije) i promenljiva num (kao spoljašnja promenljiva):

javascriptfunction func(localNum) {
  console.log(num); // ispisuje 1
  console.log(localNum); // ispisuje 1
}

let num = 1;
func(num);

Sama promenljiva localNum biće lokalna promenljiva funkcije i neće biti dostupna spolja:

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // pozivamo funkciju sa parametrom
console.log(localNum); // daće grešku

Pošto je promenljiva localNum lokalna, ni jedna promena sa njom neće promeniti ništa spolja:

javascriptfunction func(localNum) {
  localNum = 2; // ne menja ništa spolja
}

let num = 1;
func(num);

Ako pak unutar funkcije promenimo promenljivu num (globalnu), onda će se promene pojaviti i spolja:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num); // ispisuje 2

Međutim, ako unutar funkcije deklarišemo promenljivu num preko let, onda ćemo na taj način kreirati lokalnu promenljivu num, koja ne utiče na spoljašnju promenljivu:

javascriptfunction func(localNum) {
  let num = 2; // deklarišemo preko let
}

let num = 1;
func(num);
console.log(num); // ispisuje 1 - ništa se nije promenilo
Задание 1

Odredite, ne pokrećući kod, šta će biti ispisano u konzoli:

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

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

Odredite, ne pokrećući kod, šta će biti ispisano u konzoli:

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

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

Odredite, ne pokrećući kod, šta će biti ispisano u konzoli:

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

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

Odredite, ne pokrećući kod, šta će biti ispisano u konzoli:

javascriptlet num = 1;

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

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

Odredite, ne pokrećući kod, šta će biti ispisano u konzoli:

javascriptfunction func(localNum) {
  localNum = 2;
}

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

Odredite, ne pokrećući kod, šta će biti ispisano u konzoli:

javascriptfunction func(localNum) {
  num = 2;
}

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

Odredite, ne pokrećući kod, šta će biti ispisano u konzoli:

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

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