javascript - 这样做的正确方法是什么?我得到未定义的结果,因为该变量尚未被赋值
问题描述
如果我将 0 分配给结果,它将变为未定义,返回语句也返回未定义,因为结果未定义。我该如何解决这个问题?(我是 JS 新手)
let numOne = prompt('Enter a number');
let numTwo = prompt('Enter another number');
let op = prompt('Wirte how you would calculate these numbers');
let result = 0;
function calc(numOne, numTwo, op, result) {
if (op === 'add') {
return result = (numOne + numTwo)
} else if (op === 'minus') {
return result = (numOne - numTwo)
} else if (op === 'multiply') {
return result = (numOne * numTwo)
} else if (op === 'divide') {
return result = (numOne / numTwo)
} else return 'Something went wrong!'
}
answer = document.getElementById('main-p').innerHTML = (`You chose to ${op} ${numOne} and ${numTwo}.The result is ${result}!`)
<p id="main-p"> </p>
解决方案
您需要像这样更新您的代码。
注意事项
1)调用函数如let result = calc(Number(numOne), Number(numTwo), op);
2) 转换成数字。由于提示将以字符串形式返回,您必须将它们转换为数字,例如calc(Number(numOne)
3)只需返回输出。无需在函数中指定
let numOne = prompt('Enter a number');
let numTwo = prompt('Enter another number');
let op = prompt('Wirte how you would calculate these numbers');
let result = calc(Number(numOne), Number(numTwo), op);
function calc(numOne, numTwo, op) {
if (op === 'add') {
return (numOne + numTwo)
} else if (op === 'minus') {
return (numOne - numTwo)
} else if (op === 'multiply') {
return (numOne * numTwo)
} else if (op === 'divide') {
return (numOne / numTwo)
} else return 'Something went wrong!'
}
answer = document.getElementById('main-p').innerHTML = (`You chose to ${op} ${numOne} and ${numTwo}.The result is ${result}!`)
<div id='main-p'></div>
推荐阅读
- mysql - mysql为列创建出现值的列表
- c# - Suite8、Oracle、Fidelio XML 接口获取陪同客人详细信息
- ios - 如何过滤获取的数据并加载到 tableview 中?
- javascript - navigator.credentials 在本地服务器上为空
- laravel - 使用 Laravel 在后台运行 bash 脚本
- ruby - 为给定类定义 method_missing 时如何修复“NoMethodError”?
- reactjs - react-scripts build 不会转换模板文字,应用程序在 IE 中不起作用
- arduino - Arduino十六进制到字符串解码器不起作用
- angular - Angular 7 测试 retryWhen 使用模拟 http 请求无法实际重试
- jquery - 如何在 SQL 中查询此查询?