Parameters of outer and inner functions in JavaScript

Let's make both the outer function and the inner function accept parameters:

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

Let's pass the parameter of the external function to the call of the internal function:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // shows 1
  }
  
  func(num); //!! passes the parameter
}

test(1); // passes a number as a parameter

It turns out that the variable num will be available in the inner function as an external variable from the parent function and the variable localNum, which is a local variable of the inner function.

Both of these variables will have the same value:

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

test(1);

The difference between them will be as follows: if you change the variable num in the inner function, it will also change in the outer function:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // changes the variable num
  }
  
  func(num);   // passes the parameter
  console.log(num);  // shows 2
}

test(1); // passes a number as a parameter

And the variable localNum will be local. Its changes will not lead to any changes in the external function. And the variable localNum itself will not be visible outside the inner function:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // changes the num variable
  }
  
  func(num); // passes the parameter
}

test(1); // passes a number as a parameter
Задание 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

test(1);