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:

  1. Quando queremos rodar uma função depois que outra coisa acabar

  2. 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

Was this helpful?