JavaScript === vs ==

Harshit Jindal 12 outubro 2023
  1. Operador Loose Equality (==) em JavaScript
  2. Operador de igualdade estrita (===) em JavaScript
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:

  1. 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 escrever Number("42"). Dessa forma, usamos o método explícito de conversão do tipo Number() para converter uma string em um número.
  2. 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 avatar Harshit Jindal avatar

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

Artigo relacionado - JavaScript Operator