Ir para conteúdo


Foto

Melhores práticas sobre o uso de operadores de igualdade


  • Por favor, faça o login para responder
2 respostas neste tópico

#1 Link

Link

    Member Avançado

  • Membros
  • PipPipPip
  • 774 posts

Postado 13 July 2016 - 19:21

Olá pessoal,

 

      Tenho uma dúvida que ainda persiste com relação ao uso de operadores de igualdade em nosso javascript.  Por exemplo:

 

Eu uso assim:

if (xpto == undefined) {
}

if (obj.getStuff() != undefined) {
}

Mas pelo que li neste site http://eslint.org/docs/rules/eqeqeq , é recomendado usar assim:

if (xpto === undefined) {
}

if (obj.getStuff() !== undefined) {
}

Gostaria muito de saber a opinião de vocês.  Se tiverem um tempinho, por gentileza, opinem a respeito.

 

abraços



#2 Legolas

Legolas

    Ext JS - Admin

  • Administrators
  • 3496 posts
  • LocationBelo Horizonte

Postado 13 July 2016 - 20:44

Link, a diferença principal entre os operadores == e === é que o segundo operador além de comparar o valor compara também se o tipo do dado é igual.

 

Faz o teste ai para você ver:

var nome = "Meu Nome";

console.log(nome == "Meu Nome"); // Returns: true -> mesmo valor
console.log(nome === "Meu Nome"); // Returns: true -> mesmo valor mesmo tipo

var semValorDefinido;

console.log(semValorDefinido == undefined); // Returns: true -> mesmo valor
console.log(semValorDefinido === undefined); // Returns: true -> mesmo valor mesmo tipo

var valorNulo = null;

console.log(valorNulo == undefined); // Returns: true -> mesmo valor, pois NULL e UNDEFINED são valores indefinidos
console.log(valorNulo === undefined); // Returns: false-> mesmo valor porém não do mesmo tipo.

Espero que possa lhe ajudar a entender melhor como funciona.

 

Abraço.


  • Marcelo Augusto curtiu isso

"A verdadeira vitória não é derrotar alguém forte... É ser capaz de proteger alguém que você ama de verdade!" (Maito Dai)


#3 Link

Link

    Member Avançado

  • Membros
  • PipPipPip
  • 774 posts

Postado 14 July 2016 - 15:48

Link, a diferença principal entre os operadores == e === é que o segundo operador além de comparar o valor compara também se o tipo do dado é igual.

 

Faz o teste ai para você ver:

var nome = "Meu Nome";

console.log(nome == "Meu Nome"); // Returns: true -> mesmo valor
console.log(nome === "Meu Nome"); // Returns: true -> mesmo valor mesmo tipo

var semValorDefinido;

console.log(semValorDefinido == undefined); // Returns: true -> mesmo valor
console.log(semValorDefinido === undefined); // Returns: true -> mesmo valor mesmo tipo

var valorNulo = null;

console.log(valorNulo == undefined); // Returns: true -> mesmo valor, pois NULL e UNDEFINED são valores indefinidos
console.log(valorNulo === undefined); // Returns: false-> mesmo valor porém não do mesmo tipo.

Espero que possa lhe ajudar a entender melhor como funciona.

 

Abraço.

 

Olá meu amigo Legolas, a quanto tempo né?!

 

     Muito bom sua explanação.   Baseado nisso, tentar usar a partir de agora o operador "===" ao invés de "==".  Desta forma entendo ser mais eficaz.

 

Valeu meu amigo

 

abs,






0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos