繁体   English   中英

JavaScript问号和双管道

[英]Javascript Question Mark & Double Pipes

我是javascript新手,到目前为止,据我了解:

? :用于“如果为true,则执行此操作;如果为false,则执行此操作”

但是, ||有点麻烦 从我的浏览看来,就像“如果第一个是正确的,则执行此操作,否则执行此操作”

我正在尝试找出以下代码-在此情况下有关它们的含义的任何建议?

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};
}

谢谢! 干杯

|| 表示“或”。 ||的左侧 首先评估。 如果解析为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。

简而言之, 如果 ||中的任何一个表达式 “保持在一起” 运算符为true,则表达式将返回true。 否则,它将返回false。

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

等于

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

|| 是此处的or运算符,计算结果为truefalse

暂无
暂无

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

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