你能单独使用条件三元运算符吗? (JavaScript的)

时间:2014-12-15 20:39:08

标签: javascript ternary-operator

我尝试使用这个结构:

function messageTest(data2, data1, value){
    (!value) ? if (data2 == 0x7F) return true :
                if (data1 == value && data2 == 0x7F) return false;
}

但是我收到语法错误。您可以像这样单独使用三元运算符吗?我也在使用WSH执行此操作。

3 个答案:

答案 0 :(得分:7)

你不能在三元内部发表ifreturn语句,你必须做类似的事情

return value ? !(data1 == value && data2 == 0x7F) : data2 == 0x7F;

请注意我翻了它,因为!value在这种情况下没有意义,你也可以这样做

return value ? (data1 != value || data2 != 0x7F) : data2 == 0x7F;

答案 1 :(得分:0)

  

您可以单独使用条件三元运算符

是的,任何表达都可以单独使用

  

但是我收到语法错误

这是因为returnif不能位于表达式的中间

答案 2 :(得分:0)

你可以简化它,其中(data2 === 0x7F)被评估为bool而不是使用IF

function messageTest(data2, data1, value) {
  return (!value ? (data2 === 0x7F) : !((data1 === value) && (data2 === 0x7F)));
}