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