Javascript 为什么我得到的不是一个数字,而是函数返回的值

Javascript 为什么我得到的不是一个数字,而是函数返回的值,javascript,Javascript,我试图做一些简单的计算,但我的函数仍然返回一个NaNNot-a-Number。 根据MDN,NaN的意思不是数字,因此我尝试将其转换为带有数字的数字,但仍然返回相同的内容,以下是代码: function capPow() { var arr = []; for (var i = 1 ; i <= 100 ; i++) { var result = Math.pow(i, 2); arr.push(result); } for (var j = 0

我试图做一些简单的计算,但我的函数仍然返回一个NaNNot-a-Number。 根据MDN,NaN的意思不是数字,因此我尝试将其转换为带有数字的数字,但仍然返回相同的内容,以下是代码:

function capPow() {
  var arr = [];
  for (var i = 1 ; i <= 100 ; i++) {
    var result = Math.pow(i, 2);
        arr.push(result);
  }

  for (var j = 0 ; i < arr.length ; i++) {
    var result2 =+ arr[i];
  }
  var finfin = Math.pow(result2, 2);
  var ending = finfin - result2;

  return Number(ending);
}

console.log(capPow());

可能您有一个输入错误:

var result2 += arr[i];
您还应该在for语句之外定义result2


还有一些错误。这是用修复程序更新的JSFIDLE:

可能,您有一个输入错误:

var result2 += arr[i];
您还应该在for语句之外定义result2


还有一些错误。这是通过修复更新的JSFIDLE:

有一些错误,所以我将一步一步地进行

这个for循环是头痛的根源

for (var j = 0 ; i < arr.length ; i++) {
    var result2 =+ arr[i];
}

当有疑问时,记录一切。var finfin之前的console.logresult2将向您显示result2在整个过程中没有定义,console.logj将向您显示根本没有输入循环

有一些错误,所以我将一步一步地进行

这个for循环是头痛的根源

for (var j = 0 ; i < arr.length ; i++) {
    var result2 =+ arr[i];
}

当有疑问时,记录一切。var finfin之前的console.logresult2将向您显示result2在整个过程中没有定义,console.logj将向您显示根本没有输入循环

此给定的未捕获的语法错误:意外标记+=此给定的未捕获的语法错误:意外标记+=Is var result2=+arr[i];打字错误?运算符应该是+=,而不是=+。另外,为什么要将已经是数字的变量转换为数字?我遗漏了什么吗?var result2=+arr[I];打字错误?运算符应该是+=,而不是=+。另外,为什么要将已经是数字的变量转换为数字?我遗漏了什么吗?I的不正确使用是一个重要的点-没有它,你的循环根本没有运行,因此result2从未定义,因此数学上的结果是NaN。I的不正确使用是一个重要的点-没有它,你的循环根本没有运行,因此result2从未定义,因此数学上的结果是NaN。