繁体   English   中英

使用短路逻辑运算符测试空对象

[英]Testing for null object using short-circuit logical operator

我正在阅读有关 JavascriptMozilla 开发人员网络页面,并且对我看到的一行感到困惑。 这是有问题的描述和行:

&& 和 || 运算符使用短路逻辑,这意味着他们是否会执行第二个操作数取决于第一个。 这对于在访问它们的属性之前检查空对象很有用:

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

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

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

但是,看起来这里发生的事情是名称被分配了一个布尔值,并且该布尔值是“o 存在且其名称不为空”。 换句话说,对我来说,它看起来像:

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

谢谢!

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


看看最顶部的Logical Operators

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM