Why obj[-0] not equal to obj['-0'] in JavaScript
<p>In JavaScript</p>

<pre><code>var obj = {
  '34': 'I am 34',
  '-777': 'I am -777',
  '0': 'I am 0'
}
obj[34]   // 'I am 34'
obj[-777] // 'I am -777'
obj[0]    // 'I am 0'
</code></pre>

<p>It seems that <code>obj[number]</code> equal <code>obj[number.toString()]</code>. But it comes different with <code>-0</code> and <code>+0</code>:</p>

<pre><code>var obj = {
  '-0': '-0 here',
  '+0': '+0 here'
}
obj[+0]; // undefined
obj['+0']; // '-0 here'

obj['0'] = 'just 0';
obj[+0]; // 'just 0'
obj[-0]; // 'just 0'
</code></pre>

<p>Why?</p>