Por que { a: 1 } !== { a: 1 }? Entenda o Modelo de Memória do JavaScript
Prof. Gabriel Gadelha
0:00 / 0:00
Por que { a: 1 } !== { a: 1 }? Entenda o Modelo de Memória do JavaScript
166 просмотров · 1 дн. назад
Prof. Gabriel Gadelha
1,67 тыс. подписчиков
166 просмотров · 1 дн. назад
Por que dois objetos rigorosamente idênticos resultam em FALSE ao serem comparados no JavaScript? O que realmente acontece na memória RAM do computador quando você cria variáveis, arrays e objetos?
Neste segundo episódio da série de fundamentos de Front-end com foco em Engenharia de Software, nós vamos abrir a arquitetura física da engine V8. Você vai entender a separação definitiva entre a memória STACK e a memória HEAP e descobrir por que a regra de ouro de bibliotecas como React e Redux é: o estado deve ser rigorosamente imutável.
Sem atalhos superficiais e sem "mágica": entenda o que fazer, por que fazer e o custo real de cada decisão de código no navegador.
📌 O que você vai aprender neste vídeo:
• A diferença física entre Tipos Primitivos e Tipos de Referência na memória
• Por que a Stack armazena dados de tamanho fixo e a Heap armazena objetos dinâmicos
• Por que { a: 1 } === { a: 1 } resulta em false (a comparação de ponteiros na Stack)
• Como mutações acidentais por referência geram bugs silenciosos em produção
• A razão de engenharia do React exigir imutabilidade: Comparação O(1) vs Varredura O(n)
• Shallow Copy (Spread Operator) vs Deep Copy nativo com structuredClone()
🕒 Capítulos (Timestamps):
00:00 O mistério de { a: 1 } === { a: 1 } resultar em false
01:40 Tipos Primitivos vs Tipos de Referência: duas regras de alocação
03:50 A física da memória do computador: Stack vs Heap
06:50 O crime da mutação acidental por referência
10:30 A Engenharia do React: por que a imutabilidade é obrigatória?
14:40 Shallow Copy vs Deep Copy: os limites do Spread e o structuredClone()
17:45 Síntese, discussão nos comentários e introdução ao Event Loop (Vídeo 03)
💬 Deixe seu comentário:
Você já enfrentou em produção aquele bug em que o componente React simplesmente não atualizava a tela porque você fez um push() em um array ou alterou uma propriedade do objeto diretamente? Conte aqui embaixo como você descobriu o problema!
🔔 Inscreva-se no canal para acompanhar a série completa: do JavaScript puro à arquitetura avançada com React e Next.js.