A declaração de funções é uma das maneiras mais comuns de definir funções em JavaScript. Uma função declarada consiste no uso da palavra-chave function
, seguida por um nome de função, uma lista de parâmetros entre parênteses, e um bloco de código entre chaves que define o que a função deve executar.
Estrutura básica de uma declaração de função:
function nomeDaFuncao(parametro1, parametro2, ...parametroN) {
// Corpo da função: código que define a ação da função
}
Exemplo:
function somar(a, b) {
return a + b;
}
console.log(somar(5, 3)); // Saída: 8
Neste exemplo, a função somar
recebe dois argumentos, a
e b
, e retorna a soma desses dois números. Quando você chama somar(5, 3)
, a função retorna o valor 8
.
Hoisting: Funções declaradas são hoisted, o que significa que podem ser chamadas antes mesmo de serem definidas no código. Isso é possível porque o JavaScript move as declarações de funções para o topo do seu contexto de execução antes de executar o código.
Exemplo de hoisting:
console.log(subtrair(10, 5)); // Saída: 5
function subtrair(a, b) {
return a - b;
}
Neste exemplo, a função subtrair
é chamada antes de sua declaração, mas devido ao hoisting, isso não causa um erro.
Escopo de Função: Funções declaradas têm escopo local ao bloco, instrução ou expressão em que são definidas, geralmente limitando seu acesso ao contexto específico em que são criadas, a menos que sejam definidas globalmente.
As declarações de funções são uma ferramenta poderosa e flexível no JavaScript, essenciais para a criação de blocos de código reutilizáveis e para organizar a lógica do programa de maneira clara e eficaz.
Uma expressão de função envolve a definição de uma função como parte de uma expressão. Elas podem ser anônimas (sem um nome de função) ou nomeadas, e são frequentemente usadas em contextos onde funções são utilizadas como valores, como argumentos de outras funções ou atribuídas a variáveis.
Estrutura básica de uma expressão de função:
let minhaFuncao = function(parametro1, parametro2, ...parametroN) {
// Corpo da função
};