Qual é a diferença entre `==` e `===`?
Topics
JavaScript
Edit on GitHub
==
é o operador de igualdade abstrato enquanto ===
é o operador de igualdade rigoroso. O operador ==
será comparado para a igualdade após fazer quaisquer conversões de tipo necessárias. O operador ===
não fará conversão de tipo, então se dois valores não forem do mesmo tipo ===
simplesmente retornará false
. Ao usar ==
, coisas engraçadas podem acontecer, tais como:
1 == '1'; // true1 == [1]; // true1 == true; // true0 == ''; // true0 == '0'; // true0 == false; // true
Como regra geral, nunca use o operador ==
, exceto por conveniência ao comparar com null
ou undefined
, onde a == null
retornará true
se a for null
ou undefined.
var a = null;console.log(a == null); // trueconsole.log(a == undefined); // true