2013-05-10 9 views
5

次のコード行が1奇妙なjavascript式の説明は何でしょうか?

+ ! {} [true] 

として答えを与えるJavaScriptでは、私はどのように理解できませんでしたか?

ガウスの説明はありがたいです。

+5

http://www.youtube.com/watch?v=kXEgk1Hdze0 – elclanrs

+0

'+![0]'与える{} ** 1 **理解しようと印刷

var emptyObject = {}; valueOfUndefinedKey = emptyObject['key_not_exists'], itsNot = !valueOfUndefinedKey , finalConvertedNumber = +itsNot ; console.log( emptyObject, valueOfUndefinedKey, itsNot, finalConvertedNumber ) 

意味... – gdoron

+0

@elclanrsああ、私はそのビデオが大好きです。 –

答えて

4

{}は空のオブジェクトです。

ので{}[0]または{}[true]または{}[1]など。undefined

!を追加している反対を返す、booleanとして{}[0]キャスト。 (undefinedfalseとなるため、trueを返します)。

+と加算すると、intとなるので、true1となります。

+0

質問が[0]から[true]に変更されましたか? –

+2

いいえ、 '{}'は未定義ではありません。それは空のオブジェクトです。 – georg

+0

@ thg435確かに!私の悪い。 –

2

私はコードで説明しようとしました。

Object {} 

undefined 

true 

1 
関連する問題