[] == trueis false because []it is not equal true, just as "some string"it is not equal true.
![] == trueis false because it []evaluates the true value when used in a conditional expression:
if([]) console.log('[]');
if(![]) console.log('![]');
Another thing that can help you ![] == falseis true.
!![] == truetrue because it !!converts something into true or false meaning, based on whether it will be true or false in a conditional expression. Thus, if(obj)they if(!!obj)will always have the same result.
source
share