Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Porque const contagemRegressiva e não uma function

na aula o instrutor usou uma const contagemRegressiva para fazer o decremento do tempoDecorridoEmSegundos mas eu testei usando function e também funcionou, qual a diferença e poruqe a escolha de usar const ?

const contagemRegressiva = () =>{
    if (tempoDecorrido<=0){
        zerar()
        audioBeep.play()
        return;
    }
    tempoDecorrido -= 1;
    console.log('Temporizador: '+ tempoDecorrido);
}
function contagemRegressiva (){
    if (tempoDecorrido<=0){
        zerar()
        audioBeep.play()
        return;
    }
    tempoDecorrido -= 1;
    console.log('Temporizador: '+ tempoDecorrido);
}
2 respostas
solução!

A diferença está na forma como a função é criada e executada, no código da aula, ele utiliza Function Expression, que consiste em definir uma função no meio de uma expressão, nesse caso, a função se tornou o valor variável contagemRegressiva, portanto, só pode ser executada abaixo da linha em que foi declarada a variável.

No seu teste, você utilizou Function Declaration, que é a sintaxe padrão. Desse modo, sua função fica disponível para execução independente de ser chamada antes ou depois de sua declaração, pois no momento da compilação realizada pelo navegador, ele já processa sua função, e move a declaração para o topo do código. Esse tipo de comportamento e chama Hoisting.

Boa noite, Poderia nos dar exemplo de quais situações cada uma das opções se adequa melhor ? E quais as vantagens e desvantagens que cada um pode ter.

obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software