我正在阅读Mozilla 开发人员网络关于 Javascript 的页面,并且对我看到的一行感到困惑。这是有问题的描述和行:
&& 和 || 运算符使用短路逻辑,这意味着他们是否会执行第二个操作数取决于第一个操作数。这对于在访问它们的属性之前检查空对象很有用:
var name = o && o.getName();
我在这里的困惑是,片段的目的大概是执行:
var name;
if (o){
name = o.getname();
}
但是,看起来这里发生的事情是 name 被分配了一个布尔值,并且该布尔值是“o 存在且其名称不为空”。换句话说,对我来说它看起来像:
var name = false;
if (o && o.getname()){
name = true;
}
谢谢!