Executando verificação de segurança...
7

Dúvida: Como funciona o NULL em JS?

Introdução a dúvida

Sim, a dúvida parece simples no primeiro momento. Mas, eu acredito que ao decorrer do artigo, ela fique complexa, quero dizer, pelo menos para mim, foi haha.

Algum tempo atrás, iniciei uma pesquisa para entender o valor null, após ver um reels, onde um programador fazia aquelas clássicas piadas com coisas que não fazem sentido na programação, então apenas por curiosidade, achei intrigante e decidi conferir para ter certeza que aquilo não era apenas uma brincadeirinha ou até mesmo uma informação equivocada.

A questão do valor nulo que me surgiu a dúvida foi: porque ele não tem um padrão em sua igualdade com valores inicialmente, primitivos??

Vi vários artigos, blogs, vídeos e também o nosso querido Stackoverflow. Pesquisando eu achei a seguinte resposta: stackoverflow

Eu posso ter entendio algo errado, mas a resposta basicamente explica como ocorre a coerção de valores dentro do (JS). Que é a forma implícita de conversão de valores que a linguagem manipula! Etendo que isso, não explica o valor de null.

Então fiz alguns testes, para tentar achar uma lógica por trás dos valores e fiquei ainda mais intrigado, pois de fato, só deu ainda mais nó na minha cabeça, fez com que a lógica simplesmente não existisse. Confira os testes abaixo:

Vamos primeiramente separar os testes, primeiro fiz a comparação com o valor 0:
Imagem comparando valor null com zero

Observe que até o momento, para mim, não faz nenhum sentido. Pois, dá a entender que null não é nem igual, nem maior que zero, mas é maior e menor igual??

Então, separei novamente e tentei fazer o mesmo teste, com números positivos. Depois foi com 1:
Imagem comparando valor null com um

E depois com -1:
Imagem comparando valor null com menos um

Para piorar o cenário, comparei com valores boleanos:
Imagem comparando valor null com valores boleanos

Bom, é basicamente isso. Eu não entendo a lógica por trás de null. Entendo seu uso, mas o funcionamento de como a linguagem trata isso, para mim, é um mistério. Dai pergunto isso aos mais experientes que conseguirem ajudar, fiquem a vontade, bora discutir!

Carregando publicação patrocinada...
4
2

Muuuito obrigado meu querido! Agredito que isso seja uma booa pra dar a visão da linguagem, não tinha ideia, deste site!! Vlw demaais!

3

O type null ele é um valor antes do positivo e negativo, meio que é como se ele estivesse entre 0 e -0, como se entre eles não ouvesse valor e logo é considerado nulo.

1

O usuário Null colocou um comentário com uma visão inédita para mim, inclusive matematicamente falando.

Em paralelo, gostaria de complementar esse conteúdo aqui com outros conceitos, que talvez vão norteando uma visão macro desses tipos de valores especiais em JavaScript. Não sei se eles estão tecnicamente corretos, mas é a modelagem que uso para pensar:

  • undefined: um ponteiro que foi inicializado, mas não possui valor algum.
  • null: um ponteiro que foi inicializado e possui o valor null.
  • '': um ponteiro que foi inicializado e possui uma String vazia.
1

dharuan eu não sabia que o comportamento do null ia tão longe, ao ponto de pensar que eu entendia, mas depois de ler o seu post eu claramente notei que não entendo, mas a sua pesquisa foi sensacional.

Eu gosto muito de programar usando JavaScript puro, mas é nessas horas que vem uma pulga atrás da orelha e vozes falando "TypeScript" começam a sugrir na minha cabeça 😂

Quando trabalhava no Pagar.me, a gente sofreu um bug no meio do core de processamento dos pagamentos por conta de um valor nulo que entrava numa função (que não deveria) e isso desencadeava um comportamento não esperado. O problema é que o comportamento era válido (não dava throw numa exception, por exemplo). Isso dá muito medo.

2

Pois é! hahaha Eu juro que perdi uns neurônios tentando entender esse carinha. E de fato! Hoje eu trabalho bastante com o Vanilla, e estou no processo de aprender Typescript, porque de fato essas coisas não pode acontecer né, e quando rola só aparece em prod. 😂😂