使用if else条件在javascript中编写较短的代码

Hap*_*nut 3 javascript

我知道javascript中的三元表达式。但是我不知道如何使这段代码更短。

if (x == false) {
    x = true;
    cancelAnimationFrame(BI.req);
}
else {
    x = false;
    BI.req = requestAnimationFrame(BI.fn.animate);
}
Run Code Online (Sandbox Code Playgroud)

我想我可以制作两个单独的函数,并将它们与三元表达式一起使用。像这样:

function cancel() {
    x = true;
    cancelAnimationFrame(BI.req);
}
function request() {
    x = false;
    BI.req = requestAnimationFrame(BI.fn.animate);
}

x == false ? cancel() : request();
Run Code Online (Sandbox Code Playgroud)

但这似乎并不像我在真正简化我的代码。任何建议将不胜感激。

Mah*_*Ali 5

您可以使用三元函数。并使用!运算符进行设置x

x ? BI.req = requestAnimationFrame(BI.fn.animate) : cancelAnimationFrame(BI.req)
x = !x 
Run Code Online (Sandbox Code Playgroud)

甚至更短

(x = !x) ? cancelAnimationFrame(BI.req) : BI.req = requestAnimationFrame(BI.fn.animate)
Run Code Online (Sandbox Code Playgroud)

问题是关于较短的代码,所以我回答了这个问题。否则,您自己的代码片段就可以了,或者考虑使用Nina Answers,因为这两行是完全不可读的。

您也不应该那样使用三元运算符。不要使用三元运算符,而不要if-else在任何块中有两个表达式或移动表达式时使用。