JavaScript实现美元兑换埃及镑功能代码不生效如何排查修复?
问题原因
- 条件判断逻辑错误:判断数值大于0时直接使用DOM元素对象
dollarInput和0比较,而非输入框的取值dollarInput.value,导致判断永远不成立,计算逻辑不会触发。 - 缺少类型适配:输入框的
value属性默认是字符串类型,虽然乘法运算会隐式转成数字,但判断数值有效性时建议显式转换,避免边界场景的类型错误。 - 未处理异常场景:用户清空输入、输入负数/0时,没有重置结果展示,会残留上一次的计算结果。
正确实现代码
HTML代码
<form action=""> <input type="number" name="dollar" placeholder="USD Dollar" /> <div class="result">{0} USD Dollar = {0} Egyptian Pound</div> </form>
JS代码
let dollarInput = document.querySelector("[name='dollar']"); let result = document.querySelector(".result"); dollarInput.addEventListener("input", () =>{ // 显式将输入值转为数字 const dollarVal = Number(dollarInput.value); // 判断是否为有效正数 if(!isNaN(dollarVal) && dollarVal > 0){ const eG = dollarVal * 15.6; result.textContent = `{${dollarVal}} USD Dollar = {${eG.toFixed(2)}} Egyptian Pound`; } else { // 输入无效时重置为默认展示 result.textContent = "{0} USD Dollar = {0} Egyptian Pound"; } });
内容的提问来源于stack exchange,提问作者Mohamad
相关产品推荐
相关产品推荐

