2012-09-23 26 views
67

Olası Çoğalt:
Using &&'s short-circuiting as an if statement?
Does javascript use optimization in boolean expressions?JavaScript "Kısa devre" değerlendirmesi var mı?

Ben JavaScript C# & & Operatörü gibi "kısa devre" değerlendirmesini varsa bilmek istiyorum. Eğer değilse, benimsenmesi mantıklı bir çözüm olup olmadığını bilmek istiyorum.

+4

Kolayca başkalarıyla test edebilirsiniz ... – gdoron

+0

Teşekkür Rob W, ben Google'da bu dizeyi kullanabilirsiniz bilmiyordum! :-) – GibboK

+2

Rica ederim. Aramaları hızlandırmak için 'https: //www.google.com/search? Q = site: stackoverflow.com +% s' adlı bir arama kısayolu (Chrome/Firefox) ekledim. –

cevap

81

Evet, JavaScript'in "kısa devre" değerlendirmesi var.

if (true == true || foo.foo){ 
    // Passes, no errors because foo isn't defined. 
} 

Live DEMO

if (false && foo.foo){ 
    // Passes, no errors because foo isn't defined. 
} 

Live DEMO

+4

Yani kısa devre bir cevabım JS standarttır? – GibboK

+0

@GibboK. Standart olarak ne demek istediğini bilmiyorsunuz, bu davranışı değiştiremezsiniz, tek davranış budur. (sadece C# ile bu arada) – gdoron

+1

Teşekkürler gdoron, lütfen anlamama yardımcı olun ... C# gibi ikili operatöre de sahibim & böylece her iki işlenenin de geçmek için true olması gerekir, bunun yerine && ile C – GibboK

İlgili konular