2012-09-23 71 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