Параметры перадаваемых функцый у JavaScript

Хай у нас ёсць функцыя test, якая параметрам прымае іншую функцыю і ў кансоль выводзіць вынік працы гэтай перададзенай функцыі:

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

Хай перададзеная функцыя func параметрам прымае лік і штосьці з ім робіць. Перададзім ёй, напрыклад, лік 3:

javascriptfunction test(func) {
  console.log( func(3) );
}

Давайце зараз выклічам функцыю test, перадаўшы ў яе параметрам ананімную функцыю. Гэтая ананімная функцыі параметрам будзе прымаць лік і вяртаць квадрат гэтага ліку.

У выніку ўсяго гэтага наша канструкцыя выведе квадрат ліку 3, гэта значыць 9:

javascript// Выведе 9:
test(
  function(num) {
    return num * num;
  }
);

function test(func) {
  console.log(func(3));
}

Аформім код больш вытанчана:

javascript// Выведе 9:
test(function(num) {
  return num * num;
});

function test(func) {
  console.log(func(3));
}
Задание 1

Скапіруйце код маёй функцыі test. Выклічце гэтую функцыю, перадаўшы ёй параметрам ананімную функцыю, якая параметрам будзе прымаць лік і вяртаць яго куб.

Задание 2

Перарабіце ваш код так, каб перадаваемая функцыя была не ананімнай, а была вызначана як Function Declaration з імем func.

Задание 3

Перарабіце перадаваемую функцыю на Function Expression з тым самым імем func.

Задание 4

Хай перадаваемая функцыя зараз прымае два параметры і вяртае іх суму. Пры выкліку перададзенай функцыі ўнутры test перадайце ў перададзеную функцыю лік 2 і лік 3. Выведзіце вынік.