JavaScript === vs ==
Os operadores de comparação nos ajudam a determinar se duas variáveis são iguais ou seguem um critério especificado. Se os resultados da comparação forem favoráveis, retorna true
; caso contrário, retorna false
. Este tutorial explica o tópico mais confuso entre os operadores de comparação e ensina quando usar qual operador é igual (==
ou ===
).
Um único igual a =
é bastante diferente de duplo igual ==
e triplo igual a ===
porque é uma operação de atribuição e eles são operadores de comparação. Portanto, a confusão geralmente é entre ==
e ===
.
Operador Loose Equality (==
) em JavaScript
O operador ==
ou operador de igualdade também é chamado de operador de comparação abstrato. É denominado abstrato porque se preocupa apenas com o valor e não com o tipo da variável. O operador ==
realiza a conversão dos valores das variáveis para o mesmo tipo (tipo de coerção) antes de compará-los entre si e retorna verdadeiro se os operandos convertidos forem iguais. Como o operador precisa realizar a conversão de tipo, ele tende a ser um pouco mais lento do que o operador ===
.
Agora, para entender quando usar qual operador, primeiro temos que entender um pouco sobre coerção de tipo. É de dois tipos:
- Coerção explícita: É feita explicitamente por meio de código usando métodos embutidos. Por exemplo: Para converter uma string
"42"
em um número, temos que escreverNumber("42")
. Dessa forma, usamos o método explícito de conversão do tipoNumber()
para converter uma string em um número. - Coerção implícita: É feita implicitamente pela linguagem. Geralmente é executado quando usamos dois tipos diferentes de operando com um operador. Por exemplo: Se executarmos
1 + ""
. Há um número e uma string que não podem ser adicionados diretamente, então o tipo JavaScript converte o número em string, pois é a única maneira pela qual eles podem ser adicionados e retorna uma string"1"
.
23 == '23' // returns true
true + false == 1 // returns true
undefined ==
null // returns true
[] == 0 // returns true
Operador de igualdade estrita (===
) em JavaScript
O operador ===
ou operador de identidade também é chamado de operador de comparação estrita. É chamado de estrito porque retorna verdadeiro apenas quando o tipo e o valor de ambos os operandos são iguais. Não realiza nenhum tipo de conversão; portanto, ele tende a ser mais rápido do que o operador ==
.
true === true // returns true
true === 1 // returns false
Portanto, a decisão de escolher o operador ==
ou ===
depende da coerção de tipo. Se alguém não estiver familiarizado com a coerção de tipo, ele deve ficar com o operador de igualdade estrita.
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn