Глобалне променљиве и параметри функција у JavaScript-у

Претпоставимо да имамо функцију која прима број као параметар:

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

Претпоставимо да изван функције постоји променљива num:

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

let num = 1; // спољашња глобална променљива

Хајде да позовемо нашу функцију, проследивши јој променљиву num као параметар:

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

let num = 1;
func(num); // позивамо функцију са параметром, исписаће 1

Испоставиће се да ће унутар функције бити доступна како променљива localNum (параметар функције), тако и променљива num (као спољашња променљива):

javascriptfunction func(localNum) {
  console.log(num); // исписаће 1
  console.log(localNum); // исписаће 1
}

let num = 1;
func(num);

Сама променљива localNum биће локална променљива функције и неће бити доступна споља:

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // позивамо функцију са параметром
console.log(localNum); // даће грешку

Пошто је променљива localNum локална, никакве промене на њој неће променити ништа споља:

javascriptfunction func(localNum) {
  localNum = 2; // не мења ништа споља
}

let num = 1;
func(num);

Ако се међутим унутар функције промени променљива num (глобална), промене ће се појавити и споља:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num); // исписаће 2

Међутим, ако се унутар функције декларише променљива num преко let, онда ћемо на тај начин створити локалну променљиву num, која не утиче на спољашњу променљиву:

javascriptfunction func(localNum) {
  let num = 2; // декларишемо преко let
}

let num = 1;
func(num);
console.log(num); // исписаће 1 - ништа се није променило
Задание 1

Одредите, без покретања кода, шта ће се исписати у конзоли:

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

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

Одредите, без покретања кода, шта ће се исписати у конзоли:

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

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

Одредите, без покретања кода, шта ће се исписати у конзоли:

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

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

Одредите, без покретања кода, шта ће се исписати у конзоли:

javascriptlet num = 1;

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

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

Одредите, без покретања кода, шта ће се исписати у конзоли:

javascriptfunction func(localNum) {
  localNum = 2;
}

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

Одредите, без покретања кода, шта ће се исписати у конзоли:

javascriptfunction func(localNum) {
  num = 2;
}

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

Одредите, без покретања кода, шта ће се исписати у конзоли:

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

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