使用||是否安全而不是如果? - JavaScript

时间:2014-07-25 21:57:00

标签: javascript if-statement

最近,我注意到,在两个函数之间放置一个运算符,只有当运算符的第一边是 false 时才会运行第二个函数。使用它代替 if 语句是否安全?

示例:

function a(){ return Math.random() >= 0.5; } 
function b(){ console.log("foo"); }

使用

!a() || b();

具有相同的行为
if( a() ) b();

我的问题是:使用这种语法是否安全?有例外吗?

1 个答案:

答案 0 :(得分:8)

是的,依靠这一点是安全的(虽然可读性可以辩论并且取决于确切的用例)。

此行为称为"short-circuit evaluation",是许多编程语言的一项功能。见Does JavaScript have "Short-circuit" evaluation?