Quando usar o operador double not (!!) em JavaScript
Compreendoo que o operador double not faz em JavaScript. Estou curioso sobre o seu uso e se uma afirmação recente que eu fiz está correta.
eu disse issoif (!!someVar)
nunca é significativo nem é(!!someVar && ...
porque ambos osif
e a&&
fará com que someVar seja avaliado como booleano, então o !! é supérfluo.
De fato, a única vez em que pude pensar que seria legítimo usar o operador double not é se você quisesse fazer uma comparação estrita com outro valor booleano (talvez um valor de retorno que espere explicitamente verdadeiro ou falso).
Isso está correto? Comecei a duvidar de mim mesmo quando notei que o jQuery 1.3.2 usava ambosif (!!someVar)
ereturn !!someVar && ...
O duplo não tem nenhum efeito real nessas situações?
Minha opinião pessoal é que isso apenas leva à confusão. Se eu vir uma instrução if, sei que ela está sendo avaliada como booleana.