我在考虑如何在单个三元语句中执行许多操作,但完成时与普通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");
}
答案 0 :(得分:2)
使用简单否定和三元的一种很好的写作方式是:
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");
注意这里是如何使用三元组来决定使用哪个String。
但是,不要使用ternarys来实现副作用。这不是他们的目的,滥用它们从来不会有助于代码的可读性。如果您需要副作用(改变某些变量),只需使用普通if
... else
。它们更具可读性。