title: Are these undefined checking identical in behavior?
body: <p>I've seem different approaches for (strict equality) checking for <code>undefined</code>:</p>
  
  <ul>
  <li><code>if (something === undefined)</code></li>
  <li><code>if (typeof something === 'undefined')</code></li>
  <li><code>if (something === void 0)</code></li>
  <li><em>and probably others</em></li>
  </ul>
  
  <p>In a <em>happy scenario</em> their behavior is the same. In other words, they all work.</p>
  
  <p>But, considering all the quirk corners of JavaScript, are they truly identical in behavior?</p>
  
  <p><em>If yes</em>, why people choose other approaches rather than the first? Is it some sort of legacy or misconception? Because the first one it's obviously the most clear in both readability and intention demonstration.</p>