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