23

次の結果がどのように評価されたかを誰か説明してもらえますか?

{} + {} // NaN
[] + {} // "[object Object]"
{} + [] // 0
[] + [] // ""
4

4 に答える 4

20

これについての完全な説明があります。確認してください

オブジェクトではなくブロックと{} + {}するNaN場合は注意してください。{}

({}+{})する必要があります'[object Object][object Object]'

実際の結果は次のとおり

console.log({}+{}) // '[object Object][object Object]'
console.log([]+{}) // '[object Object]'
console.log({}+[]) // '[object Object]'
console.log([]+[]) // ''
于 2012-08-13T08:40:12.630 に答える
3

オブジェクトとその文字列表現を含む配列を追加すると、常に結合になります

例えば:

[1] + [2] // is merged to "12", so [] + [] is an empty string ""

2番目の例でも同じです

['test'] + {} // "test[object Object]"

したがって、空の配列に空のオブジェクトを加えたものは、[object Object]


空のオブジェクトに追加するのも簡単です:

単純な空のオブジェクトを評価します。{} // results in undefined

2 つの値を加算するのは、2 つのundefined値を加算NaNする方法がないためです。

: 戻り値は、JavaScript の実装 (つまり、ブラウザまたは環境) によって異なります。

また: JavaScript の {} + {} とは何ですか?

于 2012-08-13T08:40:52.477 に答える
0
{} + {} 

2 つのオブジェクトに対して加算や操作を行うことはできません

[] + {} // "[object Object]"

それは文字列とオブジェクトの間の単なる連結であり、同じ結果が得られますalert({});

{} + [] // 0

同じ

[] + [] // ""

2 つの空文字列の連結 = 空文字列。

于 2012-08-13T08:44:41.397 に答える