title: Clarification on JavaScript operator precedence when assigning and incrementing values
body: <p>Despite working with JavaScript for quite a while now I've only recently started reading up about <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Operator_Precedence" rel="nofollow">operator precedence</a>, however I've stumbled across a bit of a wall which I can't seem to find an answer for.</p>
  
  <p>Consider the following example:</p>
  
  <pre class="lang-javascript prettyprint-override"><code>x=1;      // x === 1
  x++;      // x === 2
  
  x=1;      // x === 1
  y=x++;    // x === 2, y === 1
  </code></pre>
  
  <p>If <code>++</code> has a higher precedence than <code>=</code>, how is <code>y</code> not becoming <code>2</code>?</p>
  
  <p>Now consider:</p>
  
  <pre class="lang-javascript prettyprint-override"><code>x=1;      // x === 1
  y=++x;    // x === 2, y === 2
  </code></pre>
  
  <p>If <code>++x</code> and <code>x++</code> have identical associativity, how come <code>y</code> <em>is</em> becoming <code>2</code> in this case?</p>
  
  <p>Here's an <a href="http://jsfiddle.net/JamesD/YxUDX/" rel="nofollow">accompanying Fiddle</a>.</p>