Resumo : neste tutorial, você aprenderá sobre funções JavaScript e como usá-las para estruturar o código em unidades menores e mais reutilizáveis.
Introdução às funções JavaScript
Ao desenvolver um aplicativo, muitas vezes você precisa executar a mesma ação em vários lugares. Por exemplo, você pode querer mostrar uma mensagem sempre que ocorrer um erro.
Para evitar repetir o mesmo código em todos os lugares, você pode usar uma função para agrupar esse código e reutilizá-lo.
JavaScript fornece muitas funções integradas, como parseInt()
e parseFloat()
. Neste tutorial, você aprenderá como desenvolver funções personalizadas.
Declarar uma função
Para declarar uma função, você usa a function
palavra-chave, seguida pelo nome da função, uma lista de parâmetros e o corpo da função da seguinte forma:
function functionName(parameters) {
// function body
// ...
}
Linguagem de código: JavaScript ( javascript )
O nome da função deve ser um identificador JavaScript válido. Por convenção, os nomes das funções estão em camelCase e começam com verbos como getData()
, fetchContents()
e isValid()
.
Uma função pode aceitar zero, um ou vários parâmetros. No caso de vários parâmetros, é necessário usar uma vírgula para separar dois parâmetros.
O seguinte declara uma função say()
que não aceita nenhum parâmetro:
function say() {
}
Linguagem de código: JavaScript ( javascript )
O seguinte declara uma função chamada square()
que aceita um parâmetro:
function square(a) {
}
Linguagem de código: JavaScript ( javascript )
O seguinte declara uma função chamada add()
que aceita dois parâmetros:
function add(a, b) {
}
Linguagem de código: JavaScript ( javascript )
Dentro do corpo da função, você pode escrever o código para implementar uma ação. Por exemplo, a say()
função a seguir simplesmente mostra uma mensagem ao console:
function say(message) {
console.log(message);
}
Linguagem de código: JavaScript ( javascript )
No corpo da say()
função, chamamos a console.log()
função para enviar uma mensagem ao console.
Chamando uma função
Para usar uma função, você precisa chamá-la. Chamar uma função também é conhecido como invocar uma função. Para chamar uma função, você usa seu nome seguido de argumentos entre parênteses como este:
functionName(arguments);
Linguagem de código: JavaScript ( javascript )
Ao chamar uma função, o JavaScript executa o código dentro do corpo da função. Por exemplo, o seguinte mostra como chamar a say()
função:
say('Hello');
Linguagem de código: JavaScript ( javascript )
Neste exemplo, chamamos a say()
função e passamos uma string literal 'Hello'
para ela.
Parâmetros vs. Argumentos
Os termos parâmetros e argumentos são frequentemente usados de forma intercambiável. No entanto, eles são essencialmente diferentes.
Ao declarar uma função, você especifica os parâmetros. Porém, ao chamar uma função, você passa os argumentos que correspondem aos parâmetros.
Por exemplo, na say()
função, the message
é o parâmetro e a 'Hello'
string é um argumento que corresponde ao message
parâmetro.
Retornando um valor
Toda função em JavaScript retorna implicitamente, undefined
a menos que você especifique explicitamente um valor de retorno. Por exemplo:
function say(message) {
console.log(message);
}
let result = say('Hello');
console.log('Result:', result);
Linguagem de código: JavaScript ( javascript )
Saída:
Hello
Result: undefined
Linguagem de código: JavaScript ( javascript )
Para especificar um valor de retorno para uma função, você usa a return
instrução seguida por uma expressão ou valor, como este:
return expression;
Linguagem de código: JavaScript ( javascript )
Por exemplo, a add()
função a seguir retorna a soma dos dois argumentos:
function add(a, b) {
return a + b;
}
Linguagem de código: JavaScript ( javascript )
O seguinte mostra como chamar a add()
função:
let sum = add(10, 20);
console.log('Sum:', sum);
Linguagem de código: JavaScript ( javascript )
Saída:
Sum: 30
Linguagem de código: HTTP ( http )
O exemplo a seguir usa diversas return
instruções em uma função para retornar valores diferentes com base em condições:
function compare(a, b) {
if (a > b) {
return -1;
} else if (a < b) {
return 1;
}
return 0;
}
Linguagem de código: JavaScript ( javascript )
A compare()
função compara dois valores. Ele retorna:
- -1 se o primeiro argumento for maior que o segundo.
- 1 se o primeiro argumento for menor que o segundo.
- 0 se o primeiro argumento for igual ao segundo.
A função para de ser executada imediatamente quando atinge a return
instrução. Portanto, você pode usar a return
instrução sem valor para sair prematuramente da função, assim:
function say(message) {
// show nothing if the message is empty
if (! message ) {
return;
}
console.log(message);
}
Linguagem de código: JavaScript ( javascript )
Neste exemplo, se message
estiver em branco (ou undefined
), a say()
função não mostrará nada.
A função pode retornar um único valor. Se você deseja retornar vários valores de uma função , você precisa compactar esses valores em um array ou objeto.
O objeto de argumentos
Dentro de uma função, você pode acessar um objeto chamado arguments
que representa os argumentos nomeados da função.
O arguments
objeto se comporta como um array , embora não seja uma instância do tipo Array .
Por exemplo, você pode usar colchetes []
para acessar os argumentos: arguments[0]
retorna o primeiro argumento, arguments[1]
retorna o segundo e assim por diante.
Além disso, você pode usar a length
propriedade do arguments
objeto para determinar o número de argumentos.
O exemplo a seguir implementa uma função genérica add()
que calcula a soma de qualquer número de argumentos.
function add() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
Linguagem de código: JavaScript ( javascript )
Portanto, você pode passar qualquer número de argumentos para a add()
função, assim:
console.log(add(1, 2)); // 3
console.log(add(1, 2, 3, 4, 5)); // 15
Linguagem de código: JavaScript ( javascript )
Função de içamento
Em JavaScript, você pode usar uma função antes de declará-la. Por exemplo:
showMe(); // a hoisting example
function showMe(){
console.log('an hoisting example');
}
Linguagem de código: JavaScript ( javascript )
Esse recurso é chamado de içamento .
O içamento de função é um mecanismo pelo qual o mecanismo JavaScript move fisicamente as declarações de função para o topo do código antes de executá-las.
O seguinte mostra a versão do código antes de o mecanismo JavaScript executá-lo:
function showMe(){
console.log('a hoisting example');
}
showMe(); // a hoisting example
Linguagem de código: JavaScript ( javascript )
Resumo
- Use a
function
palavra-chave para declarar uma função. - Use o
functionName()
para chamar uma função. - Todas as funções retornam implicitamente indefinido se não retornarem explicitamente um valor.
- Use a
return
instrução para retornar explicitamente um valor de uma função. - A
arguments
variável é um objeto semelhante a um array dentro de uma função, representando argumentos de função. - A função hoisting permite chamar uma função antes de declará-la.