How is the boolean value returned true or false from this statement
<pre><code>function compare(a, b) {
    return isNaN(a) || isNaN(b) ? a &gt; b : +a &gt; +b;
}
var c  =  compare(10,5);
alert("C value ==?"+c);
</code></pre>

<p>I'm having trouble in understanding the above script. How is the Boolean value <code>true</code> or <code>false</code> returned from the compare(). How is the Boolean value generated <code>true</code> formed. Please explain.</p>
