Coincidência de nomes com parâmetros em JavaScript

Os parâmetros de função são variáveis locais dentro dela. Vamos nomear o parâmetro da função com o mesmo nome de uma variável global externa:

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

let num = 1;
func(num);

Neste caso, acabaremos com uma situação em que fora da função haverá uma variável num e dentro da função haverá uma variável num. Mas estas serão variáveis diferentes: alterar a variável dentro da função levará a uma alteração na variável local da função. E a variável externa dentro da função estará inacessível e não poderá ser alterada de forma alguma. Vamos verificar:

javascriptfunction func(num) {
  num = 2; // alteramos a variável local
}

let num = 1;
func(num);
console.log(num); // exibirá 1 - nada mudou
Задание 1

Determine, sem executar o código, o que será exibido no console:

javascriptfunction func(num) {
  num = 2;
}

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

Determine, sem executar o código, o que será exibido no console:

javascriptfunction func() {
  num = 2;
}

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

Determine, sem executar o código, o que será exibido no console:

javascriptfunction func() {
  let num = 2;
}

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