W JavaScript następujący wiersz kodu daje odpowiedź jako 1Jakie jest wytłumaczenie dziwnego wyrażenia javascript?
+ ! {} [true]
nie mogłem zrozumieć, w jaki sposób?
Wszelkie wyjaśnienia guru są mile widziane.
W JavaScript następujący wiersz kodu daje odpowiedź jako 1Jakie jest wytłumaczenie dziwnego wyrażenia javascript?
+ ! {} [true]
nie mogłem zrozumieć, w jaki sposób?
Wszelkie wyjaśnienia guru są mile widziane.
{}
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
.
czy pytanie zmieniło się z [0] na [prawda]? –
Nie, '{}' nie jest niezdefiniowane. To pusty obiekt. – georg
@ thg435 Rzeczywiście! Mój błąd. –
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
http://www.youtube.com/watch?v=kXEgk1Hdze0 – elclanrs
'+! {} [0]' daje ** 1 ** próbować zrozumieć znaczenie ... – gdoron
@elclanrs Oh, uwielbiam ten film. –