我尝试使用这个结构:
function messageTest(data2, data1, value){
(!value) ? if (data2 == 0x7F) return true :
if (data1 == value && data2 == 0x7F) return false;
}
但是我收到语法错误。您可以像这样单独使用三元运算符吗?我也在使用WSH执行此操作。
答案 0 :(得分:7)
你不能在三元内部发表if
和return
语句,你必须做类似的事情
return value ? !(data1 == value && data2 == 0x7F) : data2 == 0x7F;
请注意我翻了它,因为!value
在这种情况下没有意义,你也可以这样做
return value ? (data1 != value || data2 != 0x7F) : data2 == 0x7F;
答案 1 :(得分:0)
您可以单独使用条件三元运算符
是的,任何表达都可以单独使用
但是我收到语法错误
这是因为return
和if
不能位于表达式的中间
答案 2 :(得分:0)
你可以简化它,其中(data2 === 0x7F)被评估为bool而不是使用IF
function messageTest(data2, data1, value) {
return (!value ? (data2 === 0x7F) : !((data1 === value) && (data2 === 0x7F)));
}