If you need to convert a non-boolean data type to a boolean, and you’re dealing with a typeless language (e.g. javascript), you’ve got a couple of choices:  write an if-then-else logic or use the not-not (a.k.a. double-not) operator.  The results are same, so you decide on what style you prefer:

 

[object] => true

false => false

5 => true

a => true

null => false

0 => false

false => false

true => true

-1 => true

 

 

<script type="text/javascript">

    function NotNot(data)

    {           

        if (data)

            document.writeln(data + ' => true <br>');

        else

            document.writeln(data + ' => false <br>');

    }               

          

    NotNot(document);

    NotNot(document == this);

    NotNot(5);     

    NotNot('a');

    NotNot(null);

    NotNot(0);

    NotNot(false);

    NotNot(true);

    NotNot(-1);

   

</script>

 

or

 

<script type="text/javascript">

    function NotNot(data)

    {   

        document.writeln(data + ' => ' + !!data + '<br>');               

    }               

          

    NotNot(document);

    NotNot(document == this);

    NotNot(5);     

    NotNot('a');

    NotNot(null);

    NotNot(0);

    NotNot(false);

    NotNot(true);

    NotNot(-1);

   

</script>