title: Why does 'foo' + false ? 'bar' : 'baz' evaluate to 'bar'
body: <p>I removed the parenthesis from the following ternary:</p>
  
  <pre><code>res.setHeader('Content-Type', 'application/' + (isMap ? 'json' : 'javascript'));
  </code></pre>
  
  <p>And the test failed with:</p>
  
  <pre><code>Error: expected 'json' to equal 'application/javascript'
  </code></pre>
  
  <p>At first I thought this is just some wired Node.js issue, but it seems that:</p>
  
  <pre><code>'foo' + false ? 'bar' : 'baz'
  </code></pre>
  
  <p>Evaluates to 'bar' in Firefox and Chrome.</p>
  
  <p>So my question is:</p>
  
  <ol>
  <li>What happened to the first part of my string.</li>
  <li>Why am I getting the <code>true</code> value of the ternary operation when I'm passing <code>false</code>.</li>
  </ol>