JavaScript新手编写BMI计算器代码无法运行,如何排查错误?
代码问题修复说明
核心错误点
- 语法错误:获取体重、身高的两行代码括号未正确闭合,会直接导致JS解析报错无法执行
- 逻辑错误:
document.getElementById()仅能获取输入框DOM对象,需要追加.value属性才能拿到用户输入的实际值,否则直接转数字会得到NaN,后续计算全部失效
修复后完整JS代码
function berekenBMI() { // 补全括号、添加.value获取输入值 var gewicht = Number(document.getElementById("gewicht").value); // 体重 var lengte = Number(document.getElementById("lengte").value); // 身高 // 额外增加输入合法性校验,避免非数字/无效值导致计算异常 if (isNaN(gewicht) || isNaN(lengte) || gewicht <= 0 || lengte <= 0) { document.getElementById("output").innerHTML = "无效输入"; document.getElementById("comment").innerHTML = "请输入正确的体重和身高数值"; return; } var BMI = gewicht / Math.pow(lengte, 2); // BMI计算公式 document.getElementById("output").innerHTML = Math.round(BMI * 100) / 100; if (BMI < 18.5) document.getElementById("comment").innerHTML = '5'; if (BMI >= 18.5 && BMI < 25) document.getElementById("comment").innerHTML = '2'; if (BMI >= 25 && BMI <= 30) document.getElementById("comment").innerHTML = 'geen'; if (BMI > 30) document.getElementById("comment").innerHTML = 'nooit geen'; }
其他说明
原有HTML代码无需修改,替换JS部分即可正常运行。额外增加的输入校验逻辑可以避免用户输入空值、负数、非数字内容时页面显示异常的问题,你可以根据需要选择是否保留。
内容的提问来源于stack exchange,提问作者Jesse Koops
相关产品推荐
相关产品推荐

