DEV Community

Uriel dos Santos Souza
Uriel dos Santos Souza

Posted on • Edited on

Peculiaridades do JS. Que não são erros! Nem esquisitice! - Null

JavaScript é uma linguagem interessante.
Null pode ser um grande problema em JS.

Null não é um primitivo. Mas por qual motivo?

Java. Sim é culpa do Java.

Saiba que null foi introduzido no início para representar "ausência de um objeto" em uma ponte Java-para-JavaScript planejada . Por isso typeof null é object.
Com a palavra o criador da linguagem.

lembre-se Null é um objeto.

typeof null === 'object'
Enter fullscreen mode Exit fullscreen mode

Então temos Null em JS por causa do JAVA.

Algo importante evite Null o máximo possivel.

A maioria dos desenvolvedores usa null e undefined de forma inconsistente e intercambiável, e poucos sabem quando usar qual.
Suportando ambos null e undefined complica a validação de entrada.
Os recursos JS mais recentes, como parâmetros padrão, funcionam apenas com undefined.

Prefira SEMPRE que puder undefined

Douglas Crockford acha que null é uma má ideia:

O proprio criador do Null se arrepende muito disso.

Null References: The Billion Dollar Mistake - InfoQ

Tony Hoare introduced Null references in ALGOL W back in 1965 "simply because it was so easy to implement", says Mr. Hoare. He talks about that decision considering it "my billion-dollar mistake".

favicon infoq.com

Claro que isso de não usar Null não é uma lei.
Você pode sim usar, mas a ideia é deixar de usar.
Seus casos especificos podem continuar usando sem problemas.

Algo pertinente.

Não aborde o JavaScript e Java como um ponto de familiaridade

Nem outra linguagem orientada a objetos que você conheça!

Esse é um caminho de dor e expectativas não atendidas.
Frustrações e xingamentos para todo lado...

JavaScript é algo próprio - comece do zero. Brendan Eich foi contratado com a intenção de fazer "Scheme no navegador" - por de marketing impuseram o nome JavaScript (primeiro nome foi Mocha e depois LiveScript) colocam uma sintaxe semelhante a JAVA numa esperança de aumentar a adoção.

conteúdo extra:

Why typeof null === object | Piotr Zarycki - Programming Blog

Learn why typeof null returns ‘object’ instead of ’null’ in JavaScript

    <div class="color-secondary fs-s flex items-center">
        <img
          alt="favicon"
          class="c-embed__favicon m-0 mr-2 radius-0"
          src="https://pzarycki.com/en/favicon.ico"
          loading="lazy" />
      pzarycki.com
    </div>
  </div>
</div>
Enter fullscreen mode Exit fullscreen mode

Latest comments (0)