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

Ste*_*kas 2 javascript if-statement

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

例:

function a(){ return Math.random() >= 0.5; } 
function b(){ console.log("foo"); }
Run Code Online (Sandbox Code Playgroud)

运用

!a() || b();

具有相同的行为

if( a() ) b();
Run Code Online (Sandbox Code Playgroud)

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

NPE*_*NPE 8

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

这种行为称为"短路评估",是许多编程语言的一个特性.请参阅JavaScript是否有"短路"评估?