Porque uma das funções ele definiu como constante, e todo o restante como function normal?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Porque uma das funções ele definiu como constante, e todo o restante como function normal?
Oii, Paulo!
Como você não postou na aula, vou dar uma resposta sem ter de base o código que você se refere. A escolha entre definir uma função como constante (usando const) ou como uma declaração de função tradicional (usando function) pode depender de alguns fatores e preferências da pessoa desenvolvedora. Tem algumas razões para isso:
Escopo e imutabilidade: Quando você define uma função como constante, tá utilizando uma expressão de função atribuída a uma variável. Isso significa que o nome da função não pode ser reatribuído, garantindo que a referência à função permaneça a mesma durante o tempo de execução. Isso pode ser bom pra evitar bugs acidentais onde a função poderia ser sobrescrita.
const minhaFuncao = function() {
console.log("Sou uma função constante");
};
Hoisting: As declarações de função tradicionais são "içadas" (hoisted), o que significa que você pode chamá-las antes de sua definição no código. Já as funções definidas como constantes não são içadas da mesma maneira, então você precisa defini-las antes de usá-las.
// Isso funciona
minhaFuncaoTradicional();
function minhaFuncaoTradicional() {
console.log("Sou uma função tradicional");
}
// Isso não funciona
minhaFuncaoConstante();
const minhaFuncaoConstante = function() {
console.log("Sou uma função constante");
};
Estilo e consistência: Algumas equipes ou pessoas desenvolvedoras preferem usar expressões de função atribuídas a constantes para manter um estilo consistente.
Arrow functions: Muitas vezes, funções constantes são usadas em conjunto com arrow functions, que têm uma sintaxe mais curta e não vinculam seu próprio this.
const minhaArrowFunction = () => {
console.log("Sou uma arrow function");
};
Espero ter ajudado.