title: forEach loop on array with fat arrow
body: <p>I would like to print an array line by line with carriage return.</p>
  
  <p>Simple implementation is <code>[1,2,3].forEach(function(x) {console.log(x)})</code> to get this as output</p>
  
  <pre><code>1
  2
  3
  </code></pre>
  
  <p>Now if I use the syntactic sugar of <em>ES6 fat arrows</em>,</p>
  
  <pre><code>michel$ node
  &gt; [1,2,3].forEach(x =&gt; console.log(x))
  1
  2
  3
  undefined
  &gt;
  &gt; [1,2,3].forEach(console.log)
  1 0 [ 1, 2, 3 ]
  2 1 [ 1, 2, 3 ]
  3 2 [ 1, 2, 3 ]
  undefined
  </code></pre>
  
  <p>When omitting the function parameter in the <code>forEach</code> callback, it looks like the second version is returning a cartesian product of itself. </p>
  
  <p>In other functional languages like Scala this is totally ok, why is this "wrong" in JavaScript?</p>
  
  <pre><code>michel$ scala
  scala&gt; Array(1,2,3).foreach(x =&gt; println(x))
  1
  2
  3
  
  scala&gt; Array(1,2,3).foreach(println)
  1
  2
  3
  </code></pre>