Именувани параметри во 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);