lo scrivo perchè un utente l'ha chiesto da un'altra parte
usare !! significa fare un fast-cast booleano
non(non(qualcosa))
se qualcosa è 1 o "uno" o {} o [] o una variabile di qualunque tipo diversa da null, undefined, 0 o false ... non qualcosa sarà false e non false sarà true, non un epsressione valutabile come true ma esattamente true
var qualcosa = {};
true === !!qualcosa // vera
se qualcosa è null, false o undefined o 0 , non qualcosa sarà true e non true sarà esattamente false.
non è indispensabile in JS ma se si vuole fare poi un confronto == true o false che sia è il modo più rapido per castare una variabile.