如何在JavaScript计算器代码中使用parseInt修复加法拼接字符串问题
问题原因
你遇到的加法拼接问题本质是类型不匹配导致的:
- 从input元素的
value属性拿到的内容默认是字符串类型 - JS中
-/*//运算符遇到字符串会自动尝试转成数字再计算,所以这三个运算没有问题 +运算符优先级偏向字符串拼接,只要左右任意一个值是字符串,就会执行拼接逻辑,不会做数值加法
解决方法
只需要在拿到输入值的时候,用parseInt()方法转成整数类型即可,如果需要支持小数运算,可以换成parseFloat()。
修改后的JS代码
function izracunaj() { // 拿到输入值后直接转成整数 const st1 = parseInt(document.getElementById("prvoStevilo").value); const st2 = parseInt(document.getElementById("drugoStevilo").value); const operacija = document.getElementById("operacija").value; let rezultat; switch (operacija) { case '+': rezultat = st1 + st2; break; case '-': rezultat = st1 - st2; break; case '*': rezultat = st1 * st2; break; case '/': // 额外补充除以0的判断,避免输出异常值 if (st2 === 0) { rezultat = '不能除以0'; } else { rezultat = st1 / st2; } break; // 额外补充默认分支,处理输入的运算符不合法的情况 default: rezultat = '请输入合法运算符(+ - * /)'; } document.getElementById("rezultat").value = rezultat; }
额外优化提示
现有HTML代码存在一个标签不匹配的小问题:标题用<h1>开头,却用</h2>结尾,建议改成<h1>Kalkulator</h1>避免渲染异常。
内容的提问来源于stack exchange,提问作者user17522931
相关产品推荐
相关产品推荐

