quarta-feira, 2 de março de 2011

Dicas de Programação: Qual a diferença entre == e === em Javascript?

Então, existe uma diferença (a dica vale para PHP também).
Vamos ver o seguinte código:

<script>
if ('0' == 0) {
   alert('É igual!');
} else {
   alert('É diferente');
}
</script>

Então, se executarmos o código acima, veremos que ele diz que os valores são iguais mesmo que os tipos (um string, outro um inteiro) sejam diferentes.

Meio estranho, não?

Agora faremos com o operador "===" :

<script>
if ('0' === 0) {
   alert('É igual!');
} else {
   alert('É diferente');
}
</script>

Incrivel, agora ele fala que é diferente... Mas se eu colocar com o mesmo tipo (inteiro e inteiro):

<script>
if (0 === 0) {
   alert('É igual!');
} else {
   alert('É diferente');
}
</script>

Ele fala que é igual! :)

Para quem não adivinhou, o operador "==" compara os valores sem verificação do tipo e o operador "===" compara os valores e os tipos de cada variável (ou constante).

Legal, não? ;)

Até a próxima dica!

2 comentários:

Unknown disse...

Take, mto bom..

Um post legal é sobre as diferenças entre comparar '' 0 undefined e nan tal... Eu sei que undefined tem algumas tretas, sabe como é?

Abraços,
Diego Piccolo.

TRex disse...

Só uma coisa que ficou faltando, Take. Os nomes dos operadores:
"=" -> "igual"
"==" -> "igual igual"
"===" -> "igual pra caralho"