使用其他条件在JavaScript中编写较短的代码

时间:2019-05-23 09:14:20

标签: javascript

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

if (x == false) {
    x = true;
    cancelAnimationFrame(BI.req);
}
else {
    x = false;
    BI.req = requestAnimationFrame(BI.fn.animate);
}

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

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

x == false ? cancel() : request();

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

2 个答案:

答案 0 :(得分:5)

您可以使用三元函数。并使用X1 Y4 A T运算符设置!

x

或更短

x ? BI.req = requestAnimationFrame(BI.fn.animate) : cancelAnimationFrame(BI.req)
x = !x 

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

您也不应该那样使用三元运算符。每当有两个或在任何块中移动表达式时,请勿使用三元运算符代替(x = !x) ? cancelAnimationFrame(BI.req) : BI.req = requestAnimationFrame(BI.fn.animate)

答案 1 :(得分:4)

您可以通过将作业移至最底部并使用肯定的检查来将其缩短一点。

if (x) {
    BI.req = requestAnimationFrame(BI.fn.animate);
} else {
    cancelAnimationFrame(BI.req);
}
x = !x;