6 maneiras de fazer a mesma coisa, o que é considerado boas práticas?

As vezes tem tantas maneiras diferentes de fazer o mesmo código que nós ficamos na dúvida quanto a qual maneira usar. O que seria considerado "boa prática" pela comunidade e o que sua equipe entenderia melhor. Suponhamos que você esteja trabalhando dentro de um método de um Domain Service chamado UmDomainServiceChique(objetoDoDominio) que será chamado por uma API. Você tem uma regra de negócio chique para ser verificada que por enquanto chamarei de VerificaMinhaRegraChiqueComplexa(). Você chama UmDomainServiceChique(objetoDoDominio) e caso VerificaMinhaRegraChiqueComplexa() retorne true você vai querer que UmDomainServiceChique faça o que tem que fazer e a api retornar Ok 200, caso contrário você quer que a API responda um erro qualquer, tipo BadRequest, e retornar uma mensagem dizendo que VerificaMinhaRegraChiqueComplexa deu ruim. Eu vejo 6 maneiras de fazer isso, gostaria de saber a opinião de outrs devs sobre qual seria a maneira menos gambiarr

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

Comentários

Postagens mais visitadas deste blog

Uso de memória no SQL Server

Busca de CEP com o Lazarus - Parte 1 - UrlEncode

Botão Add This para adicionar seu post em qualquer rede