Uma função JavaScript pode ter 0 ou mais parâmetros nomeados. O corpo da função pode conter tantas declarações quanto você quiser, e variáveis que são locais para aquela função podem ser declaradas no corpo da função. A declaração return pode ser usada para retornar um valor a qualquer momento, terminando a função.
function soma(num1,num2) {
var resultado = num1 + num2;
return resultado;
}
soma(4,7);
soma(20,20);
soma(0.5,3);
Se nenhuma declaração de retorno for usada (ou um return vazio sem nenhum valor), o JavaScript retornará o valor undefined.
Os parâmetros enumerados revelam-se mais como orientações do que qualquer outra coisa. Você pode chamar uma função sem passar os parâmetros que espera, caso em que eles serão definidos como undefined.
soma(); // NaN
// Não se pode realizar a soma em um undefined
Você também pode passar mais argumentos do que a função está esperando:
soma(2, 3, 4); // 5
// somou os dois primeiros argumentos; 4 foi ignorado
Argumentos de Funções
Isso pode parecer um pouco bobo, mas as funções têm acesso a uma variável adicional dentro de seu corpo chamada argument, que é um objeto do tipo array contendo todos os valores passados para a função. Vamos re-escrever a função soma para receber quantos valores quisermos:function soma() {
var resultado = 0;
for (var i = 0, j = arguments.length; i < j; i++) {
resultado += arguments[i];
}
return resultado;
}
soma(2, 3, 4, 5); // 14
Isso realmente não é mais útil do que apenas escrever 2 + 3 + 4 + 5. Vamos criar então uma função que calcule a média:
function media() {
var soma = 0;
for (var i = 0, j = arguments.length; i < j; i++) {
soma += arguments[i];
}
return soma / arguments.length;
}
media(2, 3, 4, 5); // 3.5
Operador Spread
O operador spread é usado em declarações de função com o formato: ... [variável] e incluirá dentro dessa variável toda a lista de argumentos não capturados com os quais a função foi chamada. Vamos também substituir o laço for por um laço for ... of para retornar os valores dentro de nossa variável.function media(...argumentos) {
var soma = 0;
for (let valor of argumentos) {
soma += valor;
}
return soma / argumentos.length;
}
media(2, 3, 4, 5); // 3.5
Funções Anônimas
O JavaScript permite que você crie funções anônimas.var avg = function() {
var sum = 0;
for (var i = 0, j = arguments.length; i < j; i++) {
sum += arguments[i];
}
return sum / arguments.length;
};
Nenhum comentário:
Postar um comentário