Luciano, no exemplo onde voce trocou o conteudo da Tag H1 para outro texto, o console.log que estava declarado antes da troca, mostrou o conteúdo ja trocado, porem o comando da troca foi escrito depois do console.log !! Como isso ocorreu ?
Luciano, no exemplo onde voce trocou o conteudo da Tag H1 para outro texto, o console.log que estava declarado antes da troca, mostrou o conteúdo ja trocado, porem o comando da troca foi escrito depois do console.log !! Como isso ocorreu ?
Oi André,
Muito bem notado, eu mesmo fiquei aqui um tempo tentando descobrir por que isto aconteceu já que a alteração do titulo veio depois.
Depois de quase 10 minutos aqui avaliando, fui buscar no StackOverflow e descobri que o Google Chrome e o Firefox tem uma característica especial quando se trata da função console.log()
, que é dele ser executado assincronamente.
Como a impressão de valores é comumente um recurso computacionalmente custoso, os navegadores executam comandos de impressão, como o console.log()
quando "sobra tempo" de execução, o que muitas vezes é ao final do código.
Porém, esta anomalia é bastante rara de acontecer! Eu mesmo nunca tinha visto algo do tipo, e consultei aqui com outros colegas e ninguém também tinha entendido o que ocorreu quando examinamos o código pela primeira vez.
Se você está começando com o Javascript, pode continuar utilizando o console.log()
que provavelmente você nunca mais vai esbarrar num caso tão específico quantos este, agora se você já está em um nível mais avançado e está revisando seus conhecimentos neste curso de Javascript, saiba que utilizando o debugger nativo do Chrome Dev Tools este bug não ocorre, pois executamos cada instrução pausadamente e eliminamos este possível assincronismo da impressão!
Obrigado por notar e compartilhar esta sua dúvida aqui no fórum, acabei aprendendo enquanto investigava ela aqui para você.
Espero que tenha ficado claro minhas explicações,
Um abraço,
Douglas Quintanilha
Boa tarde Douglas, obrigado pela resposta !!
Eu ja conheço um pouco sim, estou revisando, mas não sabia que o console.log também rodava de forma assíncrona mas enfim.... isso é bem raro mesmo, eu nunca tinha visto. O que é bem estranho por assim dizer, porque renderizar o texto formatado na página propriamente "parece ser" mais custoso do que mostrar no console sem formatação.
obs: o "recortar" as vezes não funciona no Atom ? rs... no Sumime Text tbm da problema, tem que copiar, colar e depois deletar o anterior, sorte que era uma linha só.... rs !!!
obs** desculpe errar seu nome, mas na pagina apareceu Luciano em algum lugar....
Grande abraço