Same name parameters in JavaScript

Now let the outer and inner functions have the same name parameters:

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

test(1);

In this case, the inner function will have the local variable num. Its change in the inner function will not affect the outer variable num:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // changes the local variable num
  }
  
  func(num);
  console.log(num); // shows 1 - nothing has changed
}

test(1);

It turns out that the inner function will not be able to access the outer variable num in order to change it:

javascriptfunction test(num) {
  function func(num) {
    // here you can not access to the external variable num
  }
  
  func(num);
}
test(1);
Задание 1

Determine what will be output to the console without running the code:

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

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

Determine what will be output to the console without running the code:

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

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

Determine what will be output to the console without running the code:

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

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

Determine what will be output to the console without running the code:

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

test(1);