title: Why use `concat` instead of `push` in this instance?
body: <p>I was browsing the answers to this question: <a href="https://stackoverflow.com/questions/36730793/can-i-dispatch-an-action-in-reducer">Can I dispatch an action in reducer?</a> and in <a href="https://stackoverflow.com/questions/36730793/can-i-dispatch-an-action-in-reducer#answer-41260990">this answer</a>, I see the following:</p>
  
  <pre><code>actionQueue = actionQueue.concat([asyncAction]);
  </code></pre>
  
  <p>which is essentially the same as:</p>
  
  <pre><code>actionQueue.push(asyncAction);
  </code></pre>
  
  <p>(ignoring that the <code>concat</code> call is creating a new array and re-assigning it to <code>actionQueue</code>, the result is the same -- an array with <code>asyncAction</code> appended to it).</p>
  
  <p>Initially, I thought that it (perhaps) performed better (somehow), and someone else was apparently wondering the same as they beat me to it in jsperf: <a href="https://jsperf.com/array-concat-vs-push-2/17" rel="noreferrer">Array .concat() vs. .push()</a>.</p>
  
  <p>As the results of the jsperf testing show, the <code>concat</code> method is significantly slower than <code>push</code> (at least as far as Chrome is concerned).</p>
  
  <p>Is there something I'm missing?<br>
  Is there a reason <code>concat</code> would be preferred in this use case?</p>