JavaScript变量数值显示为NaN而非预期值,如何实现点击前默认显示0
问题原因
- 未初始化全局点击次数变量:你在
moneyClick函数中直接写var clicks = clicks + 1,每次函数执行时会创建值为undefined的局部变量clicks,undefined参与数值运算后结果为NaN,导致所有金额计算和显示异常。 - 没有给金额标签设置初始值:JS中定义的
money = 0只是变量值,不会自动同步到DOM节点,页面加载完成后需要手动给#money元素赋值才能显示默认的0。 - 原代码存在语法不规范问题:
<head>结束后缺少<body>开始标签,虽然不影响核心功能运行,但不符合HTML语法规范。
修复后的完整代码
<html> <head> <script> var money = 0; var clickingPower = 10; var clicks = 0; // 新增全局点击次数初始化 // 页面加载完成后设置初始金额显示 window.onload = function() { document.getElementById("money").innerHTML = money; } function moneyClick() { clicks += 1; // 直接修改全局点击次数,不要重复声明变量 document.getElementById("money").innerHTML = money + clickingPower * clicks; } </script> </head> <body> <h1>You have <span id="money"></span> dollars</h1> <button onclick="moneyClick()">Click to make money</button> </body> </html>
内容的提问来源于stack exchange,提问作者embers02
相关产品推荐
相关产品推荐

