title: How does join() produce different results depending on the arguments?
body: <p>I can't quite understand why the join() call below produces different results, depending on the type of argument(s) provided.</p>
  
  <p>Here's what I found:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>var test = function() {
    var args = Array.prototype.join.call(arguments,"_");
    return args
  };
  
  console.log(test([1,2,3])) // #1: returns 1,2,3
  console.log(test(1,2,3)) // #2: returns 1_2_3</code></pre>
  </div>
  </div>
  </p>
  
  <p>Given join(arguments, '_'), shouldn't it produce a <code>_</code> delimited string in both tests above? Why does #1 return a comma delimited value instead?</p>