2012-09-23 73 views
67

可能重複:
Using &&'s short-circuiting as an if statement?
Does javascript use optimization in boolean expressions?JavaScript是否有「短路」評估?

我想知道是否有JavaScript「短路」 的評價像& &操作員在C#。如果不是,我想知道是否有一個可行的解決方法。

+4

您可以輕鬆地測試它自己... – gdoron

+0

感謝羅布W,我不知道我可以使用該字符串在谷歌! :-) – GibboK

+2

不客氣。我添加了「https://www.google.com/search?q = site:stackoverflow.com +%s」作爲搜索快捷方式(Chrome/Firefox)來加速搜索。 –

回答

81

是的,JavaScript有「短路」評估。

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

所以短路它是在JS的標準? – GibboK

+0

@GibboK。不知道你的標準是什麼意思,你不能改變這種行爲,這是唯一的行爲。 (就像使用C#一樣) – gdoron

+1

感謝gdoron,請幫我理解......在C#中我也有二元運算符,所以操作數必須爲true才能通過,而不是在C – GibboK