为什么我的函数在没有 return 语句(JS)的情况下工作?

Why does my function work without a return statement (JS)?

我在学习javascript;我对何时使用 'return.' 感到困惑到目前为止,我知道 'return' 用于指定 return 的确切值或停止来自 运行 的函数。

但是,当将我的解决方案与答案键进行比较时,其功能需要一个 return 语句,而我的则不需要。然而,两者都在控制台上显示了相同的结果。为什么?结果真的不同吗?

问题: "使用WHILE循环,计算testScore数组中存储的学生考试成绩的百分比,本次测试共有50,将百分比存储在另一个数组中,并显示到控制台。"

我的解决方案:

const testScore = [10, 40, 30, 25];
const percentages = [];

const gradePercentage = (scores) => {
  const perc = (scores / 50) * 100;
  percentages.push(perc);
};

let i = 0;
while (i < testScore.length) {
  gradePercentage(testScore[i]);
  i++;
}
console.log(percentages);

答案键

const testScore = [10, 40, 30, 25];
const percentages = [];

const gradePercentage = (scores) => {
  return (scores / 50) * 100;
};

let i = 0;
while (i < testScore.length) {
  const perc = gradePercentage(testScore[i]);
  percentages.push(perc); 
  i++;
}
console.log(percentages); 

都显示了这个结果:

当你运行你的函数时,你直接通过调用percentages.push(perc);来改变percentages,而答案键的gradePercentage函数不会改变percentages

答案键执行所谓的 pure function,这是一种没有副作用的确定性函数。就个人而言,我更喜欢写这种函数,因为它们很容易测试。