Съвпадение на имена с параметри в JavaScript

Параметрите на функцията са локални променливи вътре в нея. Нека назовем параметъра на функцията със същото име като външната глобална променлива:

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

let num = 1;
func(num);

В този случай ще се получи така, че извън функцията ще има променлива num и вътре във функцията ще има променлива num. Но това ще са различни променливи: промяната на променливата вътре във функцията ще променя локалната променлива на функцията. А външната променлива вътре във функцията няма да бъде достъпна и не може да бъде променена по никакъв начин. Нека проверим:

javascriptfunction func(num) {
  num = 2; // променяме локалната променлива
}

let num = 1;
func(num);
console.log(num); // ще изведе 1 - нищо не се е променило
Задание 1

Определете, без да стартирате кода, какво ще се изведе в конзолата:

javascriptfunction func(num) {
  num = 2;
}

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

Определете, без да стартирате кода, какво ще се изведе в конзолата:

javascriptfunction func() {
  num = 2;
}

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

Определете, без да стартирате кода, какво ще се изведе в конзолата:

javascriptfunction func() {
  let num = 2;
}

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