2016-03-23 24 views
0

Aşağıdakiler neden 'hi' olarak değerlendiriliyor?Aşağıdakiler neden 'merhaba' olarak değerlendiriliyor?

'hi' || true || 50 

Ben javascript süper yeni değilim, ama bu yerine true 'hi' olarak değerlendirilirse neden anlamıyorum bana süresince bazı eski kitaplar ve I geçerek bilgimi rebeefing ediyorum .. Can birisi bunu açıklıyor?

+2

Bu, '||' nin tanımlandığı gibidir: x || y, "eğer x gerçektir" x "(" gerçek "değil) x ise. – georg

+1

Sadece [RTFM] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Logical_operators) – hindmost

+0

Kitabınızda neden açıklanmadığını merak ediyorum. –

cevap

1

Doğruluk ve falsey değerleri dünyasına hoş geldiniz.

Bir değer true değerine dönüştürülebiliyorsa, bu değer true olarak adlandırılır. Bir değer ise false değerine dönüştürülebilir, bu değer falsy olarak adlandırılır.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators

Bu temelde her şey

false 
null 
undefined 
NaN 
"" 
0 

hariç truthy olan ilk değeri dönen, || koşullarda true değerlendirmek Will anlamına gelir. Bu bazen bir kaynaşabilecek benzeri şekilde kullanılır: Bir yukarıdaki değerlerin hiçbiri, başka boş bir JavaScript nesne ise bir bir ayarlayacaktır
a = a || {} 

.

0

Çünkü 'hi', boolean olarak değerlendirildiğinde true olarak değerlendirilen boş olmayan bir dize değişmezidir. İfade a. b || c, true olarak değerlendiren ilk ifadeyi döndürür, bu durumda 'merhaba'. MDN (Logical Operators) itibaren

0

: doğru dönüştürülebilir eğer

İade Expr1; aksi halde expr2 değerini döndürür. Böylece, Boole değerleri ile kullanıldığında, || işlenen her ikisi de doğruya dönüştürülebilirse true değerini döndürür; her ikisi de false değerine dönüştürülebilirse, false değerini döndürür.

0

Girişinize herkese teşekkürler. Evet, şimdi mantıklı geliyor çünkü doğru olarak değerlendiren ilk değerin nasıl değerlendirileceğini hatırlıyorum. Sanırım gerçekler hakkında daha fazla çalışma yapmak zorundayım çünkü evet, basit, ama bir şekilde bazen kafa karıştırıcı. Tekrar teşekkürler!!

İlgili konular