quinta-feira, 28 de novembro de 2013

Testar se uma variável é undefined no javascript

Para testar se uma variável é undefined ou null pode-se compará-la com as palavras chave undefined e null usando os operadores:
== (valor igual),
!= (valor diferente),
=== (estritamente igual, mesmo valor e tipo),
!== (diferente, tipo diferente)

No script abaixo existe uma variável y não declarada. Por causa dela uma exceção é gerada e tratada no catch logo abaixo.

Sempre é necessário verificar se uma variável/objeto é nula ou undefined antes de se usá-la, chamar seus métodos ou alterar suas propriedades.
É a não verificação dessas duas condições que sempre causa erros de script na página (objetos que não existem, que são nulos etc...).

O try ... catch vai garantir que você encontre o erro mesmo que esqueça dessas coisas essenciais, e seu script não para de funcionar, mesmo com erro.

 

 
 
  

Teste de Undefined

   var x;
   
   try
   {
    if(x == null)
    {
     document.getElementById('resultado').innerHTML   += "x é == null 
";
    }
    else
    {
     document.getElementById('resultado').innerHTML   += "x é != null 
";
    }
    
    
    if(x === null)
    {
     document.getElementById('resultado').innerHTML   += "x é === null 
";
    }
    else
    {
     document.getElementById('resultado').innerHTML   += "x é !== null 
";
    } 




    if(x == undefined)
    {
     document.getElementById('resultado').innerHTML   += "x é == undefined 
";
    }
    else
    {
     document.getElementById('resultado').innerHTML   += "x é != undefined 
";
    }
    
    
    if(x === undefined)
    {
     document.getElementById('resultado').innerHTML   += "x é === undefined 
";
    }
    else
    {
     document.getElementById('resultado').innerHTML   += "x é !== undefined 
";
    } 





    if(y == null)
    {
     document.getElementById('resultado').innerHTML   += "y é == null 
";
    }
    else
    {
     document.getElementById('resultado').innerHTML   += "y é != null 
";
    }
    
    
    if(y === null)
    {
     document.getElementById('resultado').innerHTML   += "y é === null 
";
    }
    else
    {
     document.getElementById('resultado').innerHTML   += "y é !== null 
";
    } 




    if(y == undefined)
    {
     document.getElementById('resultado').innerHTML   += "y é == undefined 
";
    }
    else
    {
     document.getElementById('resultado').innerHTML   += "y é != undefined 
";
    }
    
    
    if(y === undefined)
    {
     document.getElementById('resultado').innerHTML   += "y é === undefined 
";
    }
    else
    {
     document.getElementById('resultado').innerHTML   += "y é !== undefined 
";
    } 
   }
   catch(e)
   {
    alert(e.message);
   }

Peguei no stack overflow:

 http://stackoverflow.com/questions/7041123/test-if-something-is-undefined-in-javascript

Nenhum comentário:

Postar um comentário

Postagens populares

Marcadores

delphi (60) C# (31) poo (21) Lazarus (19) Site aos Pedaços (15) sql (13) Reflexões (10) .Net (9) Humor (9) javascript (9) ASp.Net (8) api (8) Básico (6) Programação (6) ms sql server (5) Web (4) banco de dados (4) HTML (3) PHP (3) Python (3) design patterns (3) jQuery (3) livros (3) metaprogramação (3) Ajax (2) Debug (2) Dicas Básicas Windows (2) Pascal (2) games (2) linguagem (2) música (2) singleton (2) tecnologia (2) Anime (1) Api do Windows (1) Assembly (1) Eventos (1) Experts (1) GNU (1) Inglês (1) JSON (1) SO (1) datas (1) developers (1) dicas (1) easter egg (1) firebird (1) interfaces (1) introspecção (1) memo (1) oracle (1) reflexão (1)