title: Array Out of Bounds: Comparison with undefined, or length check?
body: <p>this seems to be a common javascript idiom:</p>
  
  <pre><code>function foo (array, index) {
      if (typeof array[index] == 'undefined')
          alert ('out of bounds baby');
  }
  </code></pre>
  
  <p>as opposed to the more prevalent (in other languages) and conceptually simpler:</p>
  
  <pre><code>function foo (array, index) {
      if (index &gt;= array.length)
          alert ('boo');
  }
  </code></pre>
  
  <p>I understand that the first case will also work for arrays which have 'gaps' in them, but is that a common enough case to warrant the idiom? </p>
  
  <p>The code sample that prompted this question can be seen <a href="https://stackoverflow.com/questions/610406/javascript-equivalent-to-printf-string-format/4673436#4673436">here</a>. In this case, when using the 'argument' variable inside a function, isn't it sane to assume that it will be a contiguous array?</p>