2012-09-23 14 views
67

Powiel możliwe:
Using &&'s short-circuiting as an if statement?
Does javascript use optimization in boolean expressions?Czy JavaScript ma ocenę "Zwarcia"?

Chciałbym wiedzieć, czy JavaScript ma "Zwarcie" ocenę jak & & Operatora w C#. Jeśli nie, chciałbym wiedzieć, czy istnieje obejście, które ma sens.

+4

można łatwo przetestować go samodzielnie ... – gdoron

+0

Dzięki Rob W, nie wiedziałem, że można używać znaków w Google! :-) – GibboK

+2

Nie ma za co. Dodałem 'https: //www.google.com/search? Q = site: stackoverflow.com +% s' jako skrót wyszukiwania (Chrome/Firefox), aby przyspieszyć wyszukiwanie. –

Odpowiedz

81

Tak, JavaScript ma ocenę "zwarcia".

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

Tak więc zwarcie jest standardem w JS? – GibboK

+0

@ GibboK. Nie wiesz, co masz na myśli przez standard, nie możesz zmienić tego zachowania, to jedyne zachowanie. (tak jak z C# przy okazji) – gdoron

+1

Dzięki gdoron, pomóż mi zrozumieć ... w języku C# Mam również operatora binarnego, więc & więc zarówno operand musi być prawdziwy, aby przejść, zamiast z && w C – GibboK

Powiązane problemy