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
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:
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.
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
minhaFuncao
roda (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