logo javascript

Aprenda javascript com facilidade do zero

Prof. Ivan Lourenço Gomes

Tipos de dados - null e undefined

Nem sempre variáveis possuem valores e os tipos de dados null e undefined indicam justamente a ausência de valor de uma variável.

undefined

Quando criamos uma variável e não lhe atribuímos valor, ela automaticamente recebe o valor undefined e este é também o seu tipo de dados.

                    

    var undf;
    console.log(undf);

                    
                

Também há outros casos em que podemos encontrar valores undefined. Quando tentamos acessar o índice inexistente de um string, a valor retornado é undefined.

                    

    var nome = "Pedro";
    console.log(nome[0]); // O console mostrará "P"
    console.log(nome[4]); // O console mostrará "o"
    console.log(nome[10]); // O console mostrará undefined


                    
                

Quando falarmos sobre arrays e objetos vamos ver que:

  • Arrays, assim como strings, tem um tamanho e cada um dos seus elementos pode ser acessado por um índice. Quando se tenta acessar um índice que não existe, temos o valor undefined retornado.
  • Objetos possuem propriedades. Quando tentamos acessar uma propriedade do objeto que não existe também temos o valor undefined retornado.
  • null

    null na verdade não é um tipo de dados, mas isso é considerado por muitos como uma falha do Javascript. Quando temos uma variável com algum valor e queremos "apagar" este valor, podemos atribuir-lhe o valor de null.

                        
    
        var temperatura = 35;
        console.log(temperatura);
    
        temperatura = null;
        console.log(temperatura); // O console mostrará null
        
                        
                    

    No exemplo acima, se tivéssemos uma estrutura condicional, poderíamos testar se há algum valor definido para a variável temperatura e escolher entre dois caminhos:

  • Se não houver valor (temperatura == null), solte uma mensagem informando que não foi há temperatura a mostrar.
  • Se houver valor (temperatura != null), mostre a temperatura.
  • null x undefined

    O exemplo mostrado acima pode também ser feito com undefined. Na verdade a linguagem javascript considera os valores null e undefined como iguais. Podemos testar com o código abaixo:

                        
    
        var undf = undefined;
        var nl = null;
        console.log(undf == nl);  // O console mostrará true
    
                        
                    

    Estes valor porém não são do mesmo tipo, portanto se fizermos uma comparação de igualdade de valor e tipo (===), obteremos um false.

                        
    
        var undf = undefined;
        var nl = null;
        console.log(nl === undf);  // O console mostrará false
    
        console.log(typeof undf);  // O console mostrará undefined
        console.log(typeof nl);  // O console mostrará object
    
                        
                    

    O valor null portanto é do tipo objeto em javascript, o que muito acreditam ser uma falha, como dito acima. Para estas pessoas, null deveria ser um tipo de dados assim como o undefined.

    Se deveria ser assim ou não, não se pode afirmar. O importante é saber como as coisas funcionam na linguagem Javascript para podermos saber trabalhar com ela.

    Índice de Aulas