为什么我的函数在没有 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,这是一种没有副作用的确定性函数。就个人而言,我更喜欢写这种函数,因为它们很容易测试。
我在学习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,这是一种没有副作用的确定性函数。就个人而言,我更喜欢写这种函数,因为它们很容易测试。