Javascript 中的变量初始化

问题描述 投票:0回答:1

有些事情我无法理解。我有以下代码,其目的是获取两个数组的总和。

let r1;
let r2;
let total;

function totalSum(arr_1, arr_2) {
  for (let i = 0; i < arr_1.length; i++) r1 += arr_1[i];
  for (let j = 0; j < arr_2.length; j++) r2 += arr_2[j];
  total = r1 + r2;
  return total;
}

let arr_1 = [3, 5, 22, 5, 7, 2, 45, 75, 89, 21, 2]; // --> 276
let arr_2 = [9, 2, 42, 55, 71, 22, 4, 5, 90, 25, 26]; // --> 351

totalSum(arr_1, arr_2);

console.log(`total=${total} r1=${r1} r2=${r2}`);

  • 当我尝试打印结果时,它为所有变量(
    r1
    r2
    total
    )打印了“NaN”。
  • 但是,在我初始化了
    r1
    r2
    之后。它返回了预期的结果。
let r1 = 0;
let r2 = 0;
let total;

我的问题是,为什么

r1
r2
没有初始化就不能得到数组的和?而变量
total
即使没有初始化也能得到
r1
r2
的结果?

javascript undefined variable-initialization
1个回答
0
投票

当你定义一个变量而不赋值时,它的值默认是“undefined”。在这种情况下,您正在尝试使用数字和未定义进行数学运算,这将转换为 NaN

© www.soinside.com 2019 - 2024. All rights reserved.