这段代码太天真了吗?

时间:2017-09-15 12:32:25

标签: javascript function

我尝试使用下面的JS代码运行以下函数。我是JS初学者,我不知道为什么它不起作用。

f(x)= {x + 1,如果x <2;如果x> = 2,则为-2x + 7;}

function f(x) {
    if (x<2) {
        return x+1;
    }
    else if (x>=2) {
        return -2x+7;
    }
}

3 个答案:

答案 0 :(得分:4)

您需要一个乘法运算符。

return -2 * x + 7;
//        ^

答案 1 :(得分:2)

Javascript没有隐式乘法,这意味着2x在语法上无效。

我也不喜欢您对else条件如此明确的方式:这会导致程序控制陷入意外的地方 1 。也就是说,完全删除if (x>=2)

事实上,为什么不写

return x < 2 ? x + 1 : -2 * x + 7;

代替?

1 x可能是浮点NaN,在这种情况下 情况都不是真的,并且函数的返回值不是明确的。

答案 2 :(得分:2)

您错过了*中的乘法运算符-2x+7。它将是-2*x+7,如下所示

function f(x) {
if (x<2) {
    return x+1;
}
else if (x>=2) {
    return -2*x+7;
}
}

console.log(f(3));  // returns 1 
console.log(f(1));  // returns 2