基本Javascript,评估一个简单的变量赋值/逻辑语句

时间:2014-04-28 15:27:04

标签: javascript variables logic variable-assignment control-structure

我正在阅读Mozilla Developer Network's page on Javascript,并且被我看到的一条线弄糊涂了。这是相关描述和行:

  

&&和||运算符使用短路逻辑,这意味着它们是否将执行第二个操作数依赖于第一个操作数。这对于在访问其属性之前检查空对象非常有用:

var name = o && o.getName();

我的困惑在于,大概是片段的目的是执行:

var name;
if (o){
     name = o.getname();
}  

然而,看起来这里发生的是名称被赋予一个布尔值,并且该布尔值是" o存在且其名称不为空"。换句话说,对我看起来像:

var name = false;
if (o && o.getname()){
    name = true;
}

谢谢!

1 个答案:

答案 0 :(得分:2)

这个答案是Felix Kling的评论,我希望他会将其作为自己的答案发布,以获得奖励


在最顶层看看Logical Operators

  

“逻辑运算符通常与布尔值(逻辑)值一起使用;当它们是,它们返回一个布尔值。但是,&&和||运算符实际上返回一个指定操作数的值,所以如果这些运算符与非布尔值一起使用,它们可能返回非布尔值。“