Why two same statements are returning different results with just parentheses wrapping one and not the other one?
<p>Why two same statements are returning different results with just parentheses wrapping one and not the other one?</p>

<pre><code>function foo(bar){
    return !bar;
}(false) ? false : true; // returns true
</code></pre>

<hr>

<pre><code>(function foo(bar){
    return !bar;
}(false) ? false : true); // returns false! why?!
</code></pre>
