js 为什么出现NaN

JavaScript025

js 为什么出现NaN,第1张

这是因为前者你定义了 var sun没有为 sun 赋值,sun 的默认值就是 undefined

在 for 循环中,前者是使用 sun += a[i]进行累加的,sun的初始默认值为 undefined。当undefined与数值相加时,即 undefined+1 为 NaN

在后面 for 循环中,sun = a[0] + a[1] + a[2] + a[3] 每次把4个数值重新赋值给sun,所以后面是好的

解决这个问题,只需要定义sun时给一个值,如 var sun=0即可解决结果是NaN的问题

total=total+interp(x*f,y*f)*a中调用了interp,interp定义如下:

function interp(a,b,x){

return a*(1-x)+b*x

}

这个函数有三个参数,其中x没有传值,值为undefined,x参与到了运算,返回结果为NaN。

NAN:Not a number

你script里面这句a=document.form.INVOICE_TYPE.value可是在下面的代码里面没有看到有name属性为form的表单,也没有看到有name属性为INVOICE_TYPE的控件,a的值肯定是空的

下面也是

a=Number(document.form.GROSS_PROFIT.value)

b=Number(document.form.INCOME_AMOUNT.value)

根本就没有form,document.form从何而来