2013-05-10 13 views

Odpowiedz

4

{} to pusty obiekt.

Więc {}[0] lub {}[true] lub {}[1] itp .. są undefined

dodanie ! rzuca {}[0] jako boolean, wracając przeciwnego. (undefined staje się false, dlatego zwraca true).

dodanie + rzuca jako int, więc true staje 1.

+0

czy pytanie zmieniło się z [0] na [prawda]? –

+2

Nie, '{}' nie jest niezdefiniowane. To pusty obiekt. – georg

+0

@ thg435 Rzeczywiście! Mój błąd. –

2

Próbowałem wyjaśnić to za pomocą kodu.

var emptyObject = {}; 
    valueOfUndefinedKey = emptyObject['key_not_exists'], 
    itsNot = !valueOfUndefinedKey , 
    finalConvertedNumber = +itsNot ; 

console.log(
    emptyObject, 
    valueOfUndefinedKey, 
    itsNot, 
    finalConvertedNumber 
) 

która drukuje

Object {} 

undefined 

true 

1 
Powiązane problemy