Ótimo artigo, mas trago uma pequena correção sobre o comentário
const var1IsTrue = !!varivel1 // o operador !! faz a variavel retornar uma negação de false, ou seja... ! = false, !! = not false (ou true)
Esse tipo de conversão atua conforme as especificações do toBoolean
do EcmaScript. Não é a negação de false
, e sim a negação da negação. Se fosse a negação de false
, seria sempre true
, como você disse no comentário. Segue um exemplo:
0 // number, 0
!0 // boolean, true
!!0 // boolean, false