短路表达式

// ||短路表达式
var foo = a || b;
// 相当于
if(a){
    foo = a;
}else{
    foo = b;
}
 
// &&短路表达式
var bar = a && b;
// 相当于
if(a){
    bar = b;
}else{
    bar = a;
}

天天在看到,但不一定真的理解

这里需要提出一些值得注意的点:

1、在 Javascript 的逻辑运算中,0、""、null、false、undefined、NaN 都会判定为 false ,而其他都为 true ;

2、因为 Javascript 的内置弱类型域 (weak-typing domain),所以对严格的输入验证这一点不太在意,即便使用 && 或者 || 运算符的运算数不是布尔值,仍然可以将它看作布尔运算。

if(foo){ ... }     //不够严谨
if(!!foo){ ... }   //更为严谨,!!可将其他类型的值转换为boolean类型

注重细节,JavaScript 既不弱也不低等,我们只是需要更努力一点工作以使我们的代码变得真正健壮。

原文地址:https://www.cnblogs.com/lmaster/p/6525290.html