You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

函数内调用函数结果异常:仅返回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.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 15:05:25