NaN和+ =运算符的javaScript问题

时间:2013-07-02 16:28:06

标签: javascript

首先感谢您抽出宝贵时间。我正在研究用于啤酒制作的IBU计算器。请参阅下面的评论。 parseB是一个文本输入,转换为一个数字,我看到iofFinal是一个数字,而inBU [i]也是一个数字。为什么回归南?

var AAU=[]; 
var og=1.050;   
for(var i=0;i<6;i++){
    util[i]=(1.65*Math.pow(0.000125, og-1))*(1-Math.exp(-0.04*parseB[i]))/4.15;;                   
}

            function aau(){
                for(var i=0;i<6;i++){
                    AAU[i]=weight[i]*alpha[i];

                }
                return AAU;
            }

            function ibu(){

                var alphaAcid=aau();
                var inBU=[];
                var ibuFinal;

                for(var i=0;i,alphaAcid.length;i++){

                    inBU[i]=alphaAcid[i]*util[i]*75/batchSize;

                    ibuFinal+=inBU[i];//returns NaN for some reason!!
                }

                alert(ibuFinal);
            }
            ibu();

1 个答案:

答案 0 :(得分:1)

您永远不会定义ibuFinal,所以它是undefined

type-coercion in JavaScript's addition表明undefined + 1(或任何数字)为NaN。 (在EMCAScript术语中,ToNumber(undefined)NaNNaN加上任何内容均为NaN。)

确保将ibuFinal初始化为零:var ibuFinal = 0;