Why does "a + + b" work, but "a++b" doesn't?
<p>I was fiddling around with different things, like this</p>

<pre><code>var a = 1, b = 2;
alert(a + - + - + - + - + - + - + - + b); //alerts -1
</code></pre>

<p>and I could remove the spaces, and it would still work.</p>

<pre><code>a+-+-+-+-+-+-+-+b
</code></pre>

<p>Then I tried</p>

<pre><code>a + + b
</code></pre>

<p>It ran and evaluated to 3, but when I removed the spaces, (<code>a++b</code>) it wouldn't run, and it had a warning which read "Confusing plusses."</p>

<p>I can understand that in cases like</p>

<pre><code>a+++++b
</code></pre>

<p>which could be interpreted as any of the following</p>

<pre><code>(a++) + (++b)
(a++) + +(+b)
a + +(+(++b))
a + +(+(+(+b)))
</code></pre>

<p>that it would be confusing.</p>

<p>But in the case of</p>

<pre><code>a++b
</code></pre>

<p>the only valid way to interpret this, as far as I can tell, is</p>

<pre><code>a + +b
</code></pre>

<p>Why doesn't <code>a++b</code> work?</p>
