许多动作语句的通用 if 或三元运算符?

Common if or ternary operator for many actions statement?

我想过如何在单个三元语句中执行许多操作,但最终与普通 IF 几乎相同。那么哪个更好,或者没有区别?

video[0].muted ? (
    video[0].muted = false,
    vb.attr("data-value", "loud")
) : (
    video[0].muted = true,
    vb.attr("data-value", "off")
);
//
if(video[0].muted) {
    video[0].muted = false;
    vb.attr("data-value", "loud");
} else {
    video[0].muted = true;
    vb.attr("data-value", "off");
}

使用简单否定和三元的一种简洁的写法是:

var v = video[0];

// Negate the muted attribute
v.muted = !v.muted;

// And use a ternary to decide the value of this one
vb.attr("data-value", v.muted ? "off" : "loud");

注意这里如何使用三元来决定使用哪个字符串。

不过不要使用三元函数来产生副作用。这不是它们的目的,滥用它们永远不会帮助提高代码的可读性。如果你需要副作用(改变一些变量),只需使用普通的 if...else。它们更具可读性。