a = 1;
alert(!a) // -> false : a is not not defined
alert(!!a) // -> true : a is not not defined
Для !a
он проверяет, не определено ли a
, а !!a
проверяет, определена ли переменная.
!!a
совпадает с !(!a)
. Если определено a
, a
- true
, !a
- false
, а !!a
- true
.