Перейти к содержимому

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.