Hoisting
var se torna undefined, enquanto let e const ficam em uma "zona morta" até a declaração.Escopo
var tem escopo de função, enquanto let e const respeitam o escopo de bloco.Closures
Event Loop
Promises
Garbage Collection
Tratamento de Erros
try, catch e finally para gerenciar erros.Compreender esses conceitos interconectados é essencial para qualquer desenvolvedor JavaScript. Eles não apenas ajudam a resolver problemas comuns, mas também fornecem uma base sólida para escrever código mais eficiente e robusto.
0:00 Essa pergunta é como entrevistas. Esse código imprime undefined, mas não dá erro. Por quê? Se você não consegue explicar porque isso acontece, você não entende JavaScript de verdade. Nesse vídeo, eu vou explicar os conceitos fundamentais que todo engenheiro de software precisa dominar para entrevistas e também pro dia a dia. Hoisting, event loop, closures, promises, garbage collection e tratamento de erros. E vamos começar explicando aquele código do início. Hoisting significa literalmente issamento. O JavaScript puxa as
0:31 declarações pro topo do escopo antes de executar qualquer código. A declaração sobe, a atribuição fica onde tá. Por isso, conso log nome não dá erro. A variável já existe, só não tem valor ainda. Agora leia esse código. Let constrem hoing, mas fica numa zona chamada temporal dead zone, do início do bloco até a linha da declaração. Acessar elas nessa zona dá erro. E funções, depende de como você declara. Funções declaradas
1:01 com a keyword function são completamente isadas, nome e o corpo. Expressões de função sempre seguem as regras de variável. Diga tchau existe, mas é undefined, não é uma função. Resumindo, var sobe e vira undefined. Let constam na temporal dead zone. Funções declaradas sobem inteiras. Expressões de função sobem como variáveis. Mas eu falei que declarações sobem pro topo do escopo. E o que exatamente é esse escopo? O escopo define onde uma
🔒 The full, searchable transcript is available with Pro.