Operador == e === em JavaScript

Java

08/01/2016

Olá, pessoALL, beleza?

Estou utilizando o JSLint para checar meu código em JavaScript e ele está retornando inúmeras sugestões para trocar == (dois sinais de igual) por === (três sinais de igual), sempre que faço coisas como comparar idSili_UNVEHtype.value.length == 0 dentro de um if.

Existe algum ganho de desempenho ou vantagem ao substituir == por ===?


Obrigado.
Jorge Filho

Jorge Filho

Curtidas 0

Melhor post

Edson Venancio

Edson Venancio

08/01/2016

O operador == compara por "resultado" digamos assim, ou seja como JavaScript não é tipado ele converte o que você tá querendo comparar e verifica ou seja:

[code]

if (true == 'true') // aqui vai dar true
if (true == '1') // aqui vai dar true
if (true == true) // aqui vai dar true
if (true === 'true') // aqui vai dar false
if (true === '1') // aqui vai dar false
if (true === true) // aqui vai dar true
[code]

O operador === ele compara o valor e o tipo, então só vai ser true se for exatamente igual (valor e tipo)
GOSTEI 1

Mais Respostas

Jothaz

Jothaz

08/01/2016

Só completando hoje temos o TypeScript que é basicamente o JavaScript fortemente tipado e que pretende substituir o JavaScript para desenvolvimento em larga escala.

Ele é usado no AngularJS, por exemplo.
GOSTEI 0
Nilton Braz

Nilton Braz

08/01/2016

Pra quem não sabe, o JSLint é um programa de análise estática usado no desenvolvimento de software para checar se o código-fonte de um programa escrito em JavaScript compila com as regras de codificação da linguagem.

Pois bem, o == irá comparar a igualdade após fazer as conversões caso necessárias.

Já o === não faz a conversão, por isso, se dois valores não são do mesmo tipo === simplesmente retornará falso.


Neste caso, onde === será mais rápido e pode retornar um resultado diferente do ==.

RESPONDENDO A SUA PERGUNTA:
Deste modo, em todos os outros casos o desempenho será o mesmo.
GOSTEI 0
Jorge Filho

Jorge Filho

08/01/2016

Valeu galera, vocês responderam todas as minhas dúvidas!!
GOSTEI 0
POSTAR