Parâmetros de funções passadas em JavaScript

Suponha que temos uma função test que aceita outra função como parâmetro e exibe o resultado dessa função passada no console:

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

Suponha que a função passada func aceite um número como parâmetro e faça algo com ele. Vamos passar a ela, por exemplo, o número 3:

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

Agora vamos chamar a função test, passando para ela uma função anônima como parâmetro. Esta função anônima aceitará um número como parâmetro e retornará o quadrado desse número.

Como resultado disso, nossa construção exibirá o quadrado do número 3, ou seja, 9:

javascript// Exibirá 9:
test(
  function(num) {
    return num * num;
  }
);

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

Vamos formatar o código de forma mais elegante:

javascript// Exibirá 9:
test(function(num) {
  return num * num;
});

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

Copie o código da minha função test. Chame esta função, passando para ela como parâmetro uma função anônima que aceitará um número como parâmetro e retornará seu cubo.

Задание 2

Modifique seu código para que a função passada não seja anônima, mas seja definida como uma Function Declaration com o nome func.

Задание 3

Modifique a função passada para uma Function Expression com o mesmo nome func.

Задание 4

Suponha que a função passada agora aceite dois parâmetros e retorne sua soma. Ao chamar a função passada dentro de test passe para a função passada o número 2 e o número 3. Exiba o resultado.