Pode a expressão (a == 1 && a == 2 && a == 3) ser true em JavaScript?
Olá a todos! Recentemente comecei a estudar JavaScript e me deparei com um problema muito estranho. Ele verifica se a condição `(a == 1 && a == 2 && a == 3)` pode ser verdadeira (true) em algum momento. À primeira vista, parece um absurdo completo — como a mesma variável pode ser igual a três números diferentes ao mesmo tempo? Se eu escrever um código normal:
```javascript
let a = 1;
console.log(a == 1 && a == 2 && a == 3); // false
```
Então, claro, recebo false. Mas ouvi dizer que em JavaScript existem alguns truques com coerção de tipos que podem tornar essa expressão verdadeira. Eu sei que `==` (igualdade não estrita) pode fazer coerção de tipos, mas ainda assim não entendo como isso é possível.
Expliquem, por favor, é possível fazer essa condição funcionar? Se sim, como? E, principalmente, por quê? Isso é algum tipo de magia ou uma característica da linguagem? Agradeço por uma explicação detalhada com exemplos de código.
<<>>
Sim, é possível! E aqui está como funciona
Você está certo, à primeira vista parece impossí