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

你能单独使用条件三元运算符吗?(javascript),javascript,ternary-operator,Javascript,Ternary Operator,我尝试使用以下构造: function messageTest(data2, data1, value){ (!value) ? if (data2 == 0x7F) return true : if (data1 == value && data2 == 0x7F) return false; } 但是我有一个语法错误。你能像这样单独使用三元运算符吗?我还使用WSH来执行此操作 你能单独使用条件三元运算符吗 是的,任何表达式都可以自己使

我尝试使用以下构造:

function messageTest(data2, data1, value){
    (!value) ? if (data2 == 0x7F) return true :
                if (data1 == value && data2 == 0x7F) return false;
}
但是我有一个语法错误。你能像这样单独使用三元运算符吗?我还使用WSH来执行此操作

你能单独使用条件三元运算符吗

是的,任何表达式都可以自己使用

但是我有一个语法错误

这是因为返回,如果不能位于表达式

的中间,就不能在三进制内返回和返回语句,你必须做一些类似

的事情。
return value ? !(data1 == value && data2 == 0x7F) : data2 == 0x7F;
请注意,我翻转了它,就像这样!在这种情况下,值没有意义,您也可以这样做

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

您可以简化它,其中data2===0x7F作为bool计算,而不是使用IF

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

你有什么错误?没有-是a的碎片运算符必须是表达式,if语句肯定不是表达式。语法不正确,并且并非所有代码路径都返回值。例如,当值为false但数据为2!=0x7F?你来自Ruby吗您可以简化为返回值&&data1!=值| | Booleanvalue==data2==0x7FIt不是唯一的问题。