使用return函数获取数值相加结果失败,请求技术排查
问题排查与修复方案
咱们一步步拆解你代码里的问题哈:
核心问题1:prompt返回的是字符串而非数值
prompt()获取用户输入后,返回的是字符串类型,直接用+运算符会执行字符串拼接,而非数值相加。比如你输入2和3,得到的会是"23",而不是预期的5。
问题2:冗余的函数参数
你给test函数定义了x, y参数,但函数内部又通过prompt给这两个变量重新赋值,这导致参数完全没用上,还容易造成变量作用域的混淆(局部参数会覆盖全局的x,y)。
问题3:没有接收并处理返回值
你调用了test(),但没有把函数返回的结果存储或者打印出来,所以就算逻辑正确,你也看不到最终的计算结果。
修复后的代码示例
// 去掉冗余的全局变量和函数参数 function test() { // 把输入转成数值类型,用Number()或者parseInt/parseFloat都行 const x = Number(prompt("Enter a number")); const y = Number(prompt("Enter another number")); // 可选:处理用户输入非数字的情况,让代码更健壮 if (isNaN(x) || isNaN(y)) { return "请输入有效的数字!"; } return x + y; } // 接收返回值并打印出来 const result = test(); console.log(result);
额外说明
- 如果需要整数相加,可以用
parseInt(prompt(...), 10);如果要保留小数,用parseFloat(prompt(...))。 - 加上
isNaN的判断是为了处理用户输入非数字的情况,避免出现非预期的计算结果。
内容的提问来源于stack exchange,提问作者Dipankar BARUA
相关产品推荐
相关产品推荐

