В JavaScript следующая строка кода дает ответа на вопрос 1Каким будет объяснение странного выражения javascript?
+ ! {} [true]
Я не мог понять, каким образом?
Любые объяснения гуру оцениваются.
В JavaScript следующая строка кода дает ответа на вопрос 1Каким будет объяснение странного выражения javascript?
+ ! {} [true]
Я не мог понять, каким образом?
Любые объяснения гуру оцениваются.
{}
- пустой объект.
Так {}[0]
или {}[true]
или {}[1]
и т.д .. являются undefined
добавление !
бросает {}[0]
как boolean
, возвращая противоположное. (undefined
становится false
, поэтому возвращается true
).
добавление +
бросает его как int
, так true
становится 1
.
изменился вопрос от [0] до [true]? –
Нет, '{}' не является неопределенным. Это пустой объект. – georg
@ thg435 Действительно! Виноват. –
Я попытался объяснить это с помощью кода.
var emptyObject = {};
valueOfUndefinedKey = emptyObject['key_not_exists'],
itsNot = !valueOfUndefinedKey ,
finalConvertedNumber = +itsNot ;
console.log(
emptyObject,
valueOfUndefinedKey,
itsNot,
finalConvertedNumber
)
который печатает
Object {}
undefined
true
1
http://www.youtube.com/watch?v=kXEgk1Hdze0 – elclanrs
'+! {} [0]' дает ** 1 ** попытаться понять смысл ... – gdoron
@elclanrs О, я люблю это видео. –