函数内调用函数结果异常:仅返回Sum函数结果的问题求助
问题分析与修复
你的代码里有两个核心问题,导致始终只能得到Sum函数的结果:
- 赋值运算符误用:
if (a = 'Sum')和else if (a = 'Substraction')中使用的是赋值符号=,这会直接把'Sum'赋值给变量a,导致第一个条件永远为真,只会执行Sum分支。必须用严格相等运算符===来做条件判断。 - console.log返回值问题:
console.log()执行后返回的是undefined,你把它赋值给result,最后返回的永远是undefined。要获取函数执行结果,应该先保存结果再打印。
修复后的代码:
let readlineSync = require("readline-sync"); let a = readlineSync.question("Choose an operation: Sum or Substraction: "); let param1 = parseInt(readlineSync.question("Value 1: "), 10); let param2 = parseInt(readlineSync.question("Value 2: "), 10); const finalResult = chosenFunction(); console.log("计算结果:", finalResult); function Sum() { return param1 + param2; } function Substraction() { return param1 - param2; } function chosenFunction() { let result; if (a === 'Sum') { result = Sum(); } else if (a === 'Substraction') { result = Substraction(); } else { result = "请选择有效的操作:Sum或Substraction"; } return result; }
额外优化提示
- 把
Substraction修正为正确拼写Subtraction(不影响代码运行,但符合英语规范); - 给
parseInt添加第二个参数10,明确按十进制解析输入,避免非十进制的意外解析; - 可以增加输入校验,判断param1和param2是否为有效数字,防止出现NaN结果。
内容的提问来源于stack exchange,提问作者Cláudio L.
相关产品推荐
相关产品推荐

