You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS实现加减计数器时parseInt返回NaN问题排查与修复

网页计数器实现与问题排查

实现目标

开发一个简易网页计数器,包含以下核心模块:

  • 计数数值展示区域
  • 「减计数」操作按钮
  • 「加计数」操作按钮

开发遇到的异常

初版开发时,调用parseInt将id为num的DOM元素内的文本转换为数值,通过alert打印typeof检测结果,返回值为number,但变量实际值为NaN,当时无法定位问题成因。

异常原因说明

NaN是JavaScript中的特殊数值,用于标识数值解析/运算失败的场景,因此typeof NaN返回number是JS的标准设计,并非类型检测出错。
出现解析后为NaN的核心原因是:执行parseInt时拿到的目标DOM文本不是合法可解析的数字串,常见触发场景包括脚本加载早于DOM渲染,拿到空内容;或者元素文本夹带不可见特殊字符、多余空白,导致解析失败。

修复后完整代码

JS逻辑代码

var low = document.getElementById("low")
var add = document.getElementById("add")
low.addEventListener("click", function () {
    var num = document.getElementById("num")
    var number = parseInt(num.innerText)
    num.innerHTML = number - 1
})
add.addEventListener("click", function () {
    var num = document.getElementById("num")
    var number = parseInt(num.innerText)
    num.innerHTML = number + 1
})

HTML页面代码

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- <link rel="stylesheet" href="style.css"> -->
</head>
<body>
    <div class="container">
        <h1>counter</h1>
        <h1 id="num">0</h1>
        <div class="btn">
            <button id="low">lower count</button>
            <button id="add">add count</button>
        </div>
    </div>
    <script src="js.js"></script>
</body>
</html>

内容的提问来源于stack exchange,提问作者linhcheee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 03:45:34