当iam使用+=运算符时,乘法结果为NaN
convertToDecimal(){
let current=this.head;
let size=this.size;
size-=1;
var result;
while(current!=null){
let num=current.value;
var power=Math.pow(2,size)
result=(power*num);
size-=1;
current=current.next;
}
// console.log(result);
}
**控制台,结果中不输入+=
每次迭代的结果值
8
4
2
1
**但是在我放+=**之后
result+=(power*num);
输出为
NaN
NaN
NaN
NaN
任何人都可以解释这一点,请,我是新的javaScript,所以可能是一个愚蠢的问题
1条答案
按热度按时间odopli941#
发生这种情况是因为
result
变量没有初始值,所以它以undefined
开始,然后第一次执行+=
时,它试图给undefined
加一个数字,结果是NaN
。您的问题可以通过以下简化代码重现:
因此初始化为
var result = 0
。