Javascript问号&双管

时间:2014-10-29 17:11:31

标签: javascript function d3.js operators

我是javascript的新手,到目前为止,我的理解是:

?& :用于“if true,do this,if false,do this”

但是,||我遇到了一些问题。从我的浏览看起来似乎是“如果第一个是真的那样做,否则就这样做”

我想弄清楚以下代码 - 在这个背景下对它们的含义有什么建议吗?:

function isSubset(series, description){
    var subset = true;
    var exactMatch = true;
    demoCodes = ['age', 'edu', 'race', 'sex'];
    for (var i = 0; i < demoCodes.length; i++){
        var demoCode = demoCodes[i];
        subset = (subset) ? (description[demoCode] == 0 || description[demoCode] == series[demoCode]) : false;
        exactMatch = (exactMatch) ? description[demoCode] == series[demoCode] : false;
    }
    return {subset: subset, exactMatch: exactMatch};
}

谢谢!干杯

2 个答案:

答案 0 :(得分:1)

||表示“或”。首先评估||的左侧。如果它解析为true,则表达式解析为true。另一方面,如果||运算符的左侧解析为false,则将评估并返回右侧。

示例1:

1 == 1 || 1 == 0

将评估为true,因为||的左侧运算符是真的。

示例2:

1 == 2 || 1 == 1

左侧解析为false,因此评估并返回右侧。在这种情况下,1 == 1所以整个表达式(1 == 2 || 1 == 1)解析为true。

示例3:

1 == 2 || 1 == 3

左侧解析为false,因此评估并返回右侧。在这种情况下,1不等于3,因此整个表达式(1 == 2 || 1 == 3)解析为false。

更简单地说,如果任何一个表达式“由||保持在一起” operator是true,那么表达式将返回true。否则,它将返回false。

答案 1 :(得分:1)

subset = (subset) ? (description[demoCode] == 0 || description[demoCode] == series[demoCode]) : false;

等于

if(subset){
  subset = (description[demoCode] == 0 || description[demoCode] == series[demoCode);
}
else { subset = false; }

此处||是一个或运算符,其评估结果为truefalse