Глобални променливи и параметри на функции во 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);