Sovrapposizione di nomi con parametri in JavaScript

I parametri della funzione sono variabili locali al suo interno. Denominiamo un parametro della funzione con lo stesso nome di una variabile globale esterna:

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

let num = 1;
func(num);

In questo caso, avremo una variabile num fuori dalla funzione e una variabile num all'interno della funzione. Ma queste saranno variabili diverse: la modifica della variabile all'interno della funzione porterà a cambiare la variabile locale della funzione. E la variabile esterna all'interno della funzione sarà inaccessibile e non potrà essere modificata in alcun modo. Verifichiamo:

javascriptfunction func(num) {
  num = 2; // modifichiamo la variabile locale
}

let num = 1;
func(num);
console.log(num); // stamperà 1 - nulla è cambiato
Задание 1

Determinate, senza eseguire il codice, cosa verrà stampato in console:

javascriptfunction func(num) {
  num = 2;
}

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

Determinate, senza eseguire il codice, cosa verrà stampato in console:

javascriptfunction func() {
  num = 2;
}

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

Determinate, senza eseguire il codice, cosa verrà stampato in console:

javascriptfunction func() {
  let num = 2;
}

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