2

我有一个函数,它接受一个参数并用它执行一些计算。参数是一个数字。但是,当参数为0时,js将其视为未定义。所以,如果我有这样的支票:

if (param == 0) { ... }

这总是错误的,因为param==0它是false但又param==undefined是真的。所以我必须重写代码并在param = 0时有一个特殊情况。

示例:
result= param*123*456 +789; 这必须更改为:

if (param == undefined) {
  result= 789;
} else {
  result= param*123*456 +789;
}
return result;

这是重复代码。一定会有更好的办法。更好的方法是什么?

4

3 回答 3

3

您可以执行一个

param = param || 0;

在你的功能的顶部。

这将确保 if paramisundefined将变为 0,因此您的所有计算都将按预期工作..

于 2013-01-21T21:39:51.360 回答
3

将您的代码更新为

result= (param||0)*123*456 +789;
于 2013-01-21T21:40:06.367 回答
0

你可以把if (param === undefined) param = 0;顶部。

不过,您的问题可能出在其他地方。你说“但是,当参数为0时,js将其视为未定义”,但这不正常。

于 2013-01-21T21:42:13.647 回答