[0]在JavaScript爲什麼OBJ [-0]不等於OBJ - 在JavaScript
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'
似乎obj[number]
等於obj[number.toString()]
。不過說到不同與-0
和+0
:
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'
爲什麼?
我會假設這是因爲'-0'和'+ 0'首先被編譯,所以實際傳遞的是'-1 * 0'(它是0)和'+ 1 * 0'(同樣爲0)的結果。 – Jhecht
你試過'(-0).toString()'和'(+0).toString()'嗎? – Bergi
@Bergi哦,謝謝你,我沒有注意到這一點。 – codefalling