Параметры знешняй і ўнутранай функцый у JavaScript

Давайце зробім так, каб і знешняя функцыя і ўнутраная прымалі параметры:

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

Перададзім параметр знешняй функцыі ў выклік унутранай функцыі:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // выведзе 1
  }
  
  func(num); //!! перадаем параметр
}

test(1); // перадаем параметрам лік

Атрымліваецца, што ў ўнутранай функцыі будзе даступная зменная num як знешняя зменная з бацькоўскай функцыі і зменная localNum, якая з'яўляецца лакальнай зменнай унутранай функцыі.

Абедзве гэтыя зменныя будуць мець аднолькавыя значэнні:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // выведзе 1
    console.log(localNum); // выведзе 1
  }
  
  func(num);
}

test(1);

Розніца паміж імі будзе ў наступным: калі ў ўнутранай функцыі змяніць зменную num - яна зменіцца і ў знешняй функцыі:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // мяняем зменную num
  }
  
  func(num);   // перадаем параметр
  console.log(num);  // выведзе 2
}

test(1); // перадаем параметрам лік

А зменная localNum будзе лакальнай. Яе змены не будуць прыводзіць ні да якіх змен у знешняй функцыі. Ды і сама зменная localNum не будзе бачная звонку ўнутранай функцыі:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // мяняем зменную num
  }
  
  func(num); // перадаем параметр
}

test(1); // перадаем параметрам лік
Задание 1

Вызначыце, не запускаючы код, што выведзецца ў кансоль:

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

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

Вызначыце, не запускаючы код, што выведзецца ў кансоль:

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

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

Вызначыце, не запускаючы код, што выведзецца ў кансоль:

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

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

Вызначыце, не запускаючы код, што выведзецца ў кансоль:

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

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

Вызначыце, не запускаючы код, што выведзецца ў кансоль:

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

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

Вызначыце, не запускаючы код, што выведзецца ў кансоль:

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

test(1);