2012-09-23 16 views
67

thể trùng lặp:
Using &&'s short-circuiting as an if statement?
Does javascript use optimization in boolean expressions?JavaScript có "đánh giá ngắn mạch" không?

Tôi muốn biết nếu JavaScript"ngắn mạch" đánh giá như & & điều hành trong C#. Nếu không, tôi muốn biết nếu có một cách giải quyết có ý nghĩa để áp dụng.

+4

Bạn có thể dễ dàng kiểm tra điều đó cho mình ... – gdoron

+0

Cảm ơn Rob W, tôi không biết tôi có thể sử dụng chuỗi đó trên Google! :-) – GibboK

+2

Bạn được chào đón. Tôi đã thêm 'https: //www.google.com/search? Q = site: stackoverflow.com +% s' làm lối tắt tìm kiếm (Chrome/Firefox) để tăng tốc tìm kiếm. –

Trả lời

81

Có, JavaScript có đánh giá "ngắn mạch".

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

Vì vậy, ngắn mạch nó là tiêu chuẩn trong JS? – GibboK

+0

@GibboK. Không biết ý bạn là gì theo tiêu chuẩn, bạn không thể thay đổi hành vi đó, đó là hành vi duy nhất. (giống như với C# bằng cách này) – gdoron

+1

Cảm ơn gdoron, hãy giúp tôi hiểu ... trong C# Tôi cũng có toán tử nhị phân như & vì vậy cả toán hạng phải đúng để vượt qua, thay vào đó với && trong C – GibboK