Globalne spremenljivke in parametri funkcij v JavaScriptu

Recimo, da imamo funkcijo, ki sprejme število kot parameter:

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

Recimo, da zunaj funkcije obstaja spremenljivka num:

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

let num = 1; // zunanja globalna spremenljivka

Pokličimo našo funkcijo in ji posredujmo spremenljivko num kot parameter:

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

let num = 1;
func(num); // kličemo funkcijo s parametrom, izpiše 1

Posledično bo znotraj funkcije dostopna tako spremenljivka localNum (parameter funkcije) kot spremenljivka num (kot zunanja spremenljivka):

javascriptfunction func(localNum) {
  console.log(num); // izpiše 1
  console.log(localNum); // izpiše 1
}

let num = 1;
func(num);

Sama spremenljivka localNum bo lokalna spremenljivka funkcije in ne bo dostopna od zunaj:

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // kličemo funkcijo s parametrom
console.log(localNum); // bo povzročilo napako

Ker je spremenljivka localNum lokalna, je nobena sprememba z njo ne bo spremenila ničesar zunaj:

javascriptfunction func(localNum) {
  localNum = 2; // ne spremeni ničesar zunaj
}

let num = 1;
func(num);

Če pa znotraj spremenimo spremenljivko num (globalno), se bodo spremembe pojavile tudi zunaj:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num); // izpiše 2

Vendar, če znotraj funkcije deklariramo spremenljivko num z let, bomo na ta način ustvarili lokalno spremenljivko num, ki ne vpliva na zunanjo spremenljivko:

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

let num = 1;
func(num);
console.log(num); // izpiše 1 - nič se ni spremenilo
Задание 1

Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:

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

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

Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:

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

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

Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:

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

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

Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:

javascriptlet num = 1;

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

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

Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:

javascriptfunction func(localNum) {
  localNum = 2;
}

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

Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:

javascriptfunction func(localNum) {
  num = 2;
}

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

Določite, brez zaganjanja kode, kaj se bo izpisalo v konzolo:

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

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