Console.log(vida)

A variável é indefinida…

Imagine se fosse tão fácil entender o sentido da vida. Em JavaScript, quando você recebe esse erro, pode ser uma sensação desanimadora. O que aconteceu aqui? O que isso significa e como pode ser corrigido. Primeiro, precisamos entender o que está acontecendo sob o capô do mecanismo V8 do JavaScript

Contexto de Execução

Quando o JavaScript começa a ser executado, ele está configurando o ambiente no qual seu código será executado, chamado de “contexto de execução”. A primeira coisa que ele faz é criar um objeto global, uma variável chamada “this” e possivelmente uma referência ao ambiente externo, se houver. Neste ponto, ele começa como um processo de “levantar” todas as variáveis ​​em seu código.

“Içamento” é outro tópico que é melhor discutido posteriormente em um artigo separado. Por enquanto, para fins de conversa, vamos apenas concordar em usar a definição dos documentos MDN aqui :

“ uma definição estrita de içamento sugere que as declarações de variáveis ​​e funções são fisicamente movidas para o topo do seu código, mas isso não é o que acontece de fato. Em vez disso, as declarações de variável e função são colocadas na memória durante a fase de compilação, mas permanecem exatamente onde você as digitou em seu código”.

Como o JavaScript está configurando o ambiente para que seu código seja executado, ele começa a alocar memória para cada variável que você declarou e espaço para o valor que você atribuiu a ela. Se você não declarou um valor explícito para a variável chamada life . JavaScript irá atribuir automaticamente o valor especial de “undefined” . Então quando você vê a vida é “ indefinida ” como um erro. O que o javaScript está tentando te dizer: está no ambiente de execução, eu criei para o seu código rodar. Você não atribuiu um valor à variável life. Portanto, seu código tem uma variável chamada vida, mas nenhum valor armazenado na memória para ela.

Isso é muito diferente de “Erro de referência: a vida não está definida”. JavaScript em sua maneira estranhamente útil. Está tentando apontar você na direção para corrigir seu código. O que o mecanismo JavaScript está tentando lhe dizer com “Erro de referência: a vida não está definida” é que quando seu código foi içado e variáveis ​​e valores foram colocados na memória. O mecanismo JavaScript não reservou nenhum espaço de memória para essa variável, pois você não declarou uma variável chamada vida. Então, essencialmente, está dizendo que não há referência em seu código a uma variável chamada vida, portanto, nada foi içado. Portanto, temos um erro porque não há nada no ambiente de execução para referenciar um valor

Isso traz um ponto muito importante, e se você precisar declarar uma variável e configurá-la para ter um valor que indique que ela tem ausência de valor?

Minha sugestão seria usar “null” de acordo com o MDN aqui

“O valor nullrepresenta a ausência intencional de qualquer valor de objeto. É um dos valores primitivos do JavaScript e é tratado como falso para operações booleanas.”

Espero que este artigo tenha ajudado a esclarecer o que realmente está acontecendo nos bastidores com o JavaScript, pois você encontrará esses erros comuns. Infelizmente, o significado da vida não é tão facilmente definido.

Boa Codificação!

Suggested posts

Evitando as consequências devastadoras de um derrame: aprendendo com a jornada de uma família.

Evitando as consequências devastadoras de um derrame: aprendendo com a jornada de uma família.

Introdução O AVC é uma emergência médica que pode atingir qualquer pessoa a qualquer momento. Ocorre quando o fluxo sanguíneo para uma parte do cérebro é interrompido, levando a uma perda repentina da função cerebral.

Meus recursos de codificação mais usados

Meus recursos de codificação mais usados

Esta semana, recebi um e-mail de um membro da lista de e-mails diários. Eles queriam saber: quais recursos você visita diariamente, semanalmente e mensalmente? Ótima pergunta! Fico feliz em tentar compartilhar algumas ideias sobre meu fluxo de trabalho e os principais recursos que uso.

Related posts

A arte é sempre apolítica?

A arte é sempre apolítica?

Ontem, fechamos a porta do Festival Eurovisão da Canção deste ano com uma brilhante e caótica grand finale, onde a cantora sueca Loreen levou para casa o troféu, tornando-se a primeira mulher a vencer duas vezes e trazendo a coroa de volta para a Suécia 50 anos depois que o ABBA venceu a competição com “Waterloo”. Eles se tornaram um dos maiores artistas do cânone da música pop.

A performance solo da garota ruiva

A pedido de Hayden, Katie se filma se masturbando.

A performance solo da garota ruiva

Passava da meia-noite quando Hayden levou Katie de volta ao dormitório da faculdade depois da noite juntos. Ela tinha aula cedo de manhã e não tinha outra troca de roupa depois de ter ficado com ele na noite anterior.

A perseguição aos cristãos: o crime de ódio do qual não falamos

Esqueça a islamofobia: cristãos (e judeus) são as principais vítimas de crimes de ódio religioso.

A perseguição aos cristãos: o crime de ódio do qual não falamos

Qualquer mente racional sabe que os círculos políticos e midiáticos são dominados pela esquerda, até mesmo pela extrema esquerda, um estado de coisas que cria um desequilíbrio no discurso político. No campo da religião, esse desequilíbrio é bem visível: jornais e redes de esquerda não se apressam em defender a fé cristã.

Por que alguns freelancers estão fingindo suas vidas

Por que alguns freelancers estão fingindo suas vidas

Estive recentemente no Linkedin, a maior rede social profissional do mundo, e encontrei postagens de designers freelancers que sigo que me chamaram a atenção. Todos postaram fotos de aviões, na praia com seus laptops, de piscinas e escritórios com vistas incríveis.