编程语言
首页 > 编程语言> > javascript – 使用||的代码的确切含​​义是什么(“OR”)运算符?

javascript – 使用||的代码的确切含​​义是什么(“OR”)运算符?

作者:互联网

我在某处看到了这段代码:

var idx = SOME_VALUE;

var color = {
  yellor: 1,
  red: 2,
  black: 0
};

var x = color[idx] || []; // Is this means if color[idx] is null, then return an empty array?

我只能猜测代码var x = color [idx] || [];表示如果color [idx]为null,则将空数组返回x,否则x = color [idx].我对吗?

不过,我需要一个解释.此代码是否具有与以下相同的逻辑?

CONDITION==VALUE? TRUE_goes_here : FALSE_goes_here

解决方法:

这意味着如果color [idx]是“falsy”,则使用空数组. “Falsy”值是假的(当然),0,NaN,“”,undefined和null(所有其他值都是“真实的”).这个成语是JavaScript curiously powerful || operator *的一个例子.

在这种情况下,如果颜色不包含idx包含的名称的属性,则它提供默认值(因为当您索引像这样的对象并且键与任何现有属性名称不匹配时,结果是未定义的) :x将是1(如果idx是“yellor”),2(如果idx是“红色”),0(如果idx是“黑色”),或者如果idx是其他任何东西则是[].

所以在问题的最后回答你的问题,基本上是的.它的:

var x = color[idx];
if (!x) {
    x = [];
}

要么

var x = color[idx] ? color[idx] : [];

*(这是我贫血的小博客上的帖子.)

标签:javascript,logical-operators
来源: https://codeday.me/bug/20191001/1839892.html