Funções
O que são funções, como executa-las, o que são callbacks?
O que são
A palavra função tem muitos significados na programação e ela varia um pouco dependendo do contexto ou linguagem. Para o JavaScript consideramos como função uma serie de instruções (linhas de código) que podem ser executadas/invocadas uma ou mais vezes e que pode receber dados de entrada (inputs ou argumentos) e pode dar dados de saída (outputs ou valor de retorno).
Sintaxe Padrão
function nomeDaSuaFuncao(parametro) {
// Seu codigo
return dadoDeRetorno;
}O exemplo acima é uma declaração de função, ou seja somente com esse trecho de código a função não é executada, apenas se torna disponível para ser executada. A associação do identificador nomeDaSuaFuncao e da função em si acontece antes da execução, quando declarada desta forma.
Outra forma possível de declarar uma função:
// Podemos usar const no lugar do let
let nomeDaSuaFuncao = function(parametro) {
// Seu codigo
return dadoDeRetorno;
};Dessa forma a função é atribuída a variável nomaDaSuaFuncao em tempo de execução.
Note que as funções em JavaScript são variáveis normais e isso traz muita flexibilidade. Em muitas outras linguagens de programação, as funções são um tipo a parte, já no Javascript elas são valores como qualquer outro, ou seja, podemos reatribuir uma variável que era uma função com qualquer outro valor valido.
let nomeDaSuaFuncao = function(parametro) {
// Seu codigo
return dadoDeRetorno;
};
nomeDaSuaFuncao = "Agora sou uma string";
console.log(nomeDaSuaFuncao ); // "Agora sou uma string"Executando uma função
Para executar uma função (informalmente chamado de: rodar uma função) basta escrever seu nome e abrir e fechar parêntesis.
No exemplo acima tentamos rodar uma função usando uma variável que não é uma função, essa operação da erro. Certifique-se de rodar apenas variáveis que funções no seu código.
Valor de retorno
No trecho acima a função teste1 roda sem problemas, enquanto a teste2 da erro. Essa diferença é devida a forma de declarar a função. Para a teste1 a associação da função e seu identificador é feita antes da execução do código, enquanto para a teste2 é feito durante a execução do código, ou seja, na linha 2, a variável teste2 ainda não foi definida e a teste1 sim
Esse processo é chamado de hoisting (caso tenha curiosidade veja mais sobre ele aqui), _**_de maneira simplificada, é quando o Javascript leva algumas de suas variáveis para o topo do código para que você consiga ter acesso a elas mesmo antes da sua declaração
Parâmetros
No trecho acima, nome é chamado de parâmetro, que atua como uma variável local que pode ser acessada de dentro da função.
Outro nome para a palavra parâmetro é argumento, os dois termos tem leve diferença, mas na pratica são usado como se fossem exatamente iguais.
Uma função pode ter nenhum, um ou mais parâmetros e seus valores são atribuídos em ordem posicional:
Funções também podem retornar um valor, usando a keyword return:
Você so pode retornar um único valor em uma função com o return, e todo código depois dele não é executado. Se quiser retornar mais de um valor você pode usar um objeto ou array (vamos explicar o que ele são posteriormente, não se preocupe!).
Mesmo quando o return não é chamado explicitamente no fim de uma função, ela retorna um valor padrão, que é undefined
É como se o Javascript adicionasse um return undefined; sempre que você não coloca ele explicitamente
Callbacks
As referencias de funções, independente de como foram declaradas, são variáveis e por isso podem ser passadas como argumento para outras funções.
No trecho abaixo a função rodarFuncao recebe 3 argumentos.
Ela tenta executar o primeiro argumento como uma função, já que uma função é uma variável como qualquer outra e se ele não for uma função vai dar erro.
O segundo e terceiro argumento da função rodarFuncao vão ser passados como parâmetros para a função que ela executa (o primeiro parâmetro)
callback é o nome de uma função que é passada como argumento para outra função De forma pratica um callback normalmente é usado em duas situações:
Quando queremos rodar uma função depois que outra coisa acabar
Sempre que algo acontece (um evento)
No exemplo abaixo quando o botão é clicado a função
minhaFuncaoroda (eventos serão explicados futuramente)
Uma função pode receber mais um callback por parâmetro
Resumo
Neste capítulo vimos o básico de funções:
Como declarar e rodar funções
Diferentes formas de declarar
Valores de retorno
Passando argumentos para funções
O que são e como usar callbacks
Last updated
Was this helpful?