JavaScript实现用户输入两数相乘校验结果功能运行异常如何解决?
代码存在的问题
- 存在无效冗余代码:两段
for (let i = 0; i > 1000; i++);循环没有任何业务作用,属于无用代码可直接删除 - return语句位置错误:在范围判断逻辑前就执行了
return (number_1 * number_2);,return之后的所有代码都不会被执行,告警逻辑完全没有运行机会 - 未声明result变量:判断逻辑中使用的
result没有被定义赋值,直接读取会触发运行时错误 - 条件判断语法错误:
else if (< 0)缺少比较对象,正确写法应为else if (result < 0) - 缺少结果回显逻辑:计算出乘积后没有赋值给页面上id为
result的显示框,页面无法展示运算结果 - 输入类型未做转换:input的value默认是字符串类型,虽然乘法会自动隐式转换,但显式转换可以避免异常输入产生NaN问题
修正后的代码
JS部分
function multiply() { // 显式将输入转换为数字类型 var number_1 = Number(document.getElementById("number_1").value); var number_2 = Number(document.getElementById("number_2").value); var result = number_1 * number_2; // 范围判断触发告警 if (result > 1000 || result < 0) { alert("Detta blev tyvärr fel!"); } // 将结果写入页面显示框 document.getElementById("result").innerText = result; }
HTML部分无需修改,可直接使用原有代码
内容的提问来源于stack exchange,提问作者Iaa
相关产品推荐
相关产品推荐

