Именски параметри у JavaScript-у

Нека сада спољна и унутрашња функција имају именске параметре:

javascriptfunction test(num) {
  function func(num) {
    console.log(num); // исписаће 1
  }
  
  func(num);
};

test(1);

У овом случају ће у унутрашњој функцији бити локална променљива num. Њена промена у унутрашњој функцији неће утицати на спољну променљиву num:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // мењамо локалну променљиву num
  }
  
  func(num);
  console.log(num); // исписаће 1 - ништа се није променило
}

test(1);

Испоставиће се да унутрашња функција не може приступити спољној променљивој num да би је променила:

javascriptfunction test(num) {
  function func(num) {
    // овде се не може доћи до спољне променљиве num
  }
  
  func(num);
}
test(1);
Задание 1

Одредите, без покретања кода, шта ће бити исписано у конзолу:

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

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

Одредите, без покретања кода, шта ће бити исписано у конзолу:

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

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

Одредите, без покретања кода, шта ће бити исписано у конзолу:

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

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

Одредите, без покретања кода, шта ће бити исписано у конзолу:

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

test(1);