Understanding the negate() function example from Eloquent Javascript (Chapter 6)
<p>As a new javascript developer, I have spent some time with this code snippit from <a href="http://eloquentjavascript.net/chapter6.html" rel="nofollow">Chapter 6 of Eloquent Javascript</a>, I am still trying to understand the following code example : </p>

<pre><code>function negate(func) {
  return function(x) {
    return !func(x);
  };
}
var isNotNaN = negate(isNaN);
document.writeln(isNotNaN(NaN));
</code></pre>

<p>Where it particular loses me is the following line, I just don't understand the call in general and where the variable/value for <strong>NaN</strong> comes from:</p>

<pre><code>document.writeln(isNotNaN(NaN));
</code></pre>
