Aşağıdakilerin sonuçlarının nasıl değerlendirildiğini bana açıklayabilir misiniz?Nesneler ve diziler ekleme
{} + {} // NaN
[] + {} // "[object Object]"
{} + [] // 0
[] + [] // ""
Aşağıdakilerin sonuçlarının nasıl değerlendirildiğini bana açıklayabilir misiniz?Nesneler ve diziler ekleme
{} + {} // NaN
[] + {} // "[object Object]"
{} + [] // 0
[] + [] // ""
Burada check it bu tam bir açıklaması var.
Ve {}
bir blok yerine bir nesnenin düşünülmektedir çünkü konsolda doğrudan yürütmek eğer{} + {}
NaN
olmak unutmayınız.
({}+{})
gerçek sonuç'[object Object][object Object]'
olduğunu edilmelidir: herhangi bir nesneye ve dize gösterimi daima sonuçlanan bir Örneğin
katılmak ile
console.log({}+{}) // '[object Object][object Object]'
console.log([]+{}) // '[object Object]'
console.log({}+[]) // '[object Object]'
console.log([]+[]) // ''
ekleme diziler:
[1] + [2] // is merged to "12", so [] + [] is an empty string ""
aynı kolay çok var
['test'] + {} // "test[object Object]"
Yani boş bir nesne artı boş bir dizi sadece boş nesnelere eklemek için bir [object Object]
dönecektir ikinci örneğin eşittir:
Basit bir boş nesneyi değerlendirin: {} // results in undefined
Ve iki undefined
değerlerini ekleyerek NaN
olduğunu, çünkü bunlara ekleme yapmanın bir yolu yoktur.
Not: dönüş değerleri JavaScript uygulanmasına bağlı Ayrıca
(yani hangi tarayıcı veya Çevre cinsinden): What is {} + {} in JavaScript?
{} + {}
Eğer bir ekleme veya herhangi bir operasyon yapmaz iki nesne
[] + {} // "[object Object]"
Sadece dize ve nesne arasındaki bir concat, aynı resu var İki boş dize alert({});
{} + [] // 0
aynı
[] + [] // ""
concat = boş bir dizge ile lt.
Sanırım '{} + []' aslında '' 0 ''(bir dizi)' '' değil (bir sayı). – DaoWen
@DaoWen, aslında bir Tamsayı '0' – Adi
hayır efendim, bir tamsayı, isterseniz chromes konsolunda test edin .. – Hilmi