可以将数字用作布尔值而不是将它们与零进行比较吗?

时间:2019-01-23 00:28:36

标签: javascript

我基本上可以归结为以下情况:

// x is a non-negative integer
if (x > 0){
    doSomething();
}

当然,条件语句可以从if (x > 0)更改为if (x)。这是惯例吗?

作为以前从未使用过javascript的人,我倾向于只使用比较,这样对我来说就不那么模棱两可了。但是,如果大多数人确实利用真实/虚假的值,我可能会忽略直接比较而习惯它。

2 个答案:

答案 0 :(得分:3)

意见 :如果您要处理的东西是真/假值,请将它们设为真/假值。由于类型强制,将它们保持为数字将始终需要进行各种检查。更不用说,每次您需要重新访问它或开发人员加入时都会感到困惑。

这实际上取决于您使用它的目的,但是type coercion是您经常遇到JavaScript时要牢记的一点。如果您想使用true / false值,我将建立逻辑来评估x并弄清楚您是否希望它为true / false。

const x = 0;
const isZero = x > 0;

console.log(isZero);

通常来说,您似乎在追求正确/错误的结果,所以建议您将其转换为正确/错误的值。

答案 1 :(得分:1)

在这种情况下,x是整数,

使用if(x)来检查x是否为undefined更有意义。例如,如果x是函数的参数,并且您想知道它是作为输入正确给出的。

另一方面,如果您知道x具有值,则明确地编写比较if(x> 0)会更有意义,并且代码也更易读。