Parametri cu același nume în JavaScript

Să presupunem acum că funcția exterioară și cea interioară au parametri cu același nume:

javascriptfunction test(num) {
  function func(num) {
    console.log(num); // va afișa 1
  }
  
  func(num);
};

test(1);

În acest caz, în funcția interioară va exista o variabilă locală num. Modificarea ei în funcția interioară nu va afecta în niciun fel variabila exterioară num:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // modificăm variabila locală num
  }
  
  func(num);
  console.log(num); // va afișa 1 - nimic nu s-a schimbat
}

test(1);

Se va dovedi că funcția interioară nu va putea accesa în niciun fel variabila exterioară num pentru a o modifica:

javascriptfunction test(num) {
  function func(num) {
    // aici nu se poate accesa variabila exterioară num
  }
  
  func(num);
}
test(1);
Задание 1

Stabiliți, fără a rula codul, ce va fi afișat în consolă:

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

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

Stabiliți, fără a rula codul, ce va fi afișat în consolă:

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

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

Stabiliți, fără a rula codul, ce va fi afișat în consolă:

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

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

Stabiliți, fără a rula codul, ce va fi afișat în consolă:

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

test(1);