title: Arrow function in javascript output?
body: <p>I was learning about arrow function in js where I found one question</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>console.log((function(x, f = () =&gt; x) {
    var x;
    var y = x;
    x = 2;
    return [x, y, f()];
  })(1));</code></pre>
  </div>
  </div>
  </p>
  <p>It's output is <code>2,1,1</code> but it should be <code>1,1,1</code>.</p>
  <p>Can anyone explain it?</p>