Супадзенне імёнаў з параметрамі ў 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);