计算器开发问题:结果显示undefined但控制台输出正确值
计算器结果显示undefined问题排查
核心问题1:运算函数无返回值
你的add、substract、multiply、divide四个运算函数仅通过console.log输出结果,没有使用return返回计算值。这意味着当operate调用这些函数时,无法获取到运算结果。
核心问题2:operate函数未返回结果
即使运算函数有返回值,当前operate函数也只是调用运算函数,没有把运算结果return出去。因此在等于按钮的点击事件中,finalNumber = operate(...)这行代码会因为operate没有返回值而得到undefined。
额外问题:未将结果同步到输入框
就算解决了上面两个问题,当前代码也没有把计算后的finalNumber赋值给calculatorOutput.value,所以输入框里还是看不到结果。
修复代码片段
- 修改运算函数,添加返回值:
function add(firstNumber, secondNumber) { const result = firstNumber + secondNumber; console.log(result); return result; } function substract(firstNumber, secondNumber) { const result = firstNumber - secondNumber; console.log(result); return result; } function multiply(firstNumber, secondNumber) { const result = firstNumber * secondNumber; console.log(result); return result; } function divide(firstNumber, secondNumber) { const result = firstNumber / secondNumber; console.log(result); return result; }
- 修改operate函数,返回运算结果:
function operate(firstNumber, operator, secondNumber) { if(operator === '+') { return add(firstNumber, secondNumber) } else if(operator === '-') { return substract(firstNumber, secondNumber); } else if(operator === '*') { return multiply(firstNumber, secondNumber) } else if(operator === "/") { return divide(firstNumber, secondNumber) } }
- 在等于按钮点击事件中同步结果到输入框:
equalButton.addEventListener('click', () => { secondNumber = displayValue; finalNumber = operate(Number(firstNumber), operator, Number(secondNumber)); console.log(finalNumber); // 新增:把结果显示到输入框 calculatorOutput.value = finalNumber; })
内容的提问来源于stack exchange,提问作者Riverain
相关产品推荐
相关产品推荐

