Parametri con lo stesso nome in JavaScript

Supponiamo ora che la funzione esterna e quella interna abbiano parametri con lo stesso nome:

javascriptfunction test(num) {
  function func(num) {
    console.log(num); // visualizzerà 1
  }
  
  func(num);
};

test(1);

In questo caso, all'interno della funzione ci sarà una variabile locale num. La sua modifica all'interno della funzione non influenzerà in alcun modo la variabile esterna num:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // modifichiamo la variabile locale num
  }
  
  func(num);
  console.log(num); // visualizzerà 1 - nulla è cambiato
}

test(1);

Il risultato è che la funzione interna non potrà in alcun modo accedere alla variabile esterna num per modificarla:

javascriptfunction test(num) {
  function func(num) {
    // qui non è possibile accedere alla variabile esterna num
  }
  
  func(num);
}
test(1);
Задание 1

Determinate, senza eseguire il codice, cosa verrà visualizzato nella console:

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

test(1);
Задание 2

Determinate, senza eseguire il codice, cosa verrà visualizzato nella console:

javascriptfunction test(num) {
  function func(num) {
    num = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);
Задание 3

Determinate, senza eseguire il codice, cosa verrà visualizzato nella console:

javascriptfunction test(num) {
  function func(num) {
    console.log(num);
  }
  
  num = 2;
  func(num);
}

test(1);
Задание 4

Determinate, senza eseguire il codice, cosa verrà visualizzato nella console:

javascriptfunction test(num) {
  function func(num) {
    console.log(num);
  }
  
  func(num);
  num = 2;
}

test(1);