If statement 多动作语句的公共if或三元运算符?

If statement 多动作语句的公共if或三元运算符?,if-statement,ternary-operator,If Statement,Ternary Operator,我曾考虑过如何在一个三元语句中执行许多操作,但最后使用了几乎与常用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 =

我曾考虑过如何在一个三元语句中执行许多操作,但最后使用了几乎与常用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
。它们更具可读性

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

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
。它们更具可读性

最后一句话+50。人们虐待ternalys,好像他们比
if
s更“前卫”。@NicholasKyriakides出于某种原因,这是我个人最讨厌的。当我看到人们以简洁的名义把东西塞进ternary的时候,我吓得直哆嗦。最后一句话+50。人们虐待ternalys,好像他们比
if
s更“前卫”。@NicholasKyriakides出于某种原因,这是我个人最讨厌的。当我看到人们以简洁的名义把东西塞进三文治里时,我吓得直哆嗦。