title: What is the difference between Null, NaN and undefined in JavaScript?
body: <p>What is the difference between <code>Null</code>, <code>NaN</code> and <code>undefined</code> in JavaScript?</p>
  
  <p>I have come across all three values, and have understood them to be “there isn’t anything here” in the context I found them- but I was hoping for a more detailed explanation as to <em>why</em> they occur, as well as what they mean in different contexts (for example- against an array, vs a class or variable).</p>