O que significa !! (dupla exclamação) em JavaScript?
Olá a todos! Acabei de começar a estudar JavaScript e me deparei com uma construção estranha no código de outra pessoa. Estava escrito algo como:
```javascript
let isActive = !!someValue;
```
Eu entendo que um ponto de exclamação `!` é o operador lógico "NOT", que inverte o valor (torna `true` em `false` e vice-versa). Mas por que escrever dois pontos de exclamação seguidos? Não é a mesma coisa que simplesmente escrever `!(!someValue)`? Ou é algum operador especial que eu não conheço?
Tentei brincar no console do navegador:
```javascript
console.log(!!"hello"); // true
console.log(!!0); // false
console.log(!!""); // false
console.log(!!null); // false
console.log(!!undefined); // false
console.log(!!42); // true
```
Os resultados são meio estranhos: `!!"hello"` retorna `true`, embora a string não esteja vazia. `!!0` retorna `false`, embora 0 seja um número. Será que isso tem a ver com coerção de tipos? Expliquem, por favor, para que serve essa dupla exclamação.
No answers yet.
Faça login para deixar uma resposta
Blogs