Javascript 尝试增加分数时获取NaN
我正在尝试对以下代码进行故障排除:Javascript 尝试增加分数时获取NaN,javascript,html,Javascript,Html,我正在尝试对以下代码进行故障排除: function getStuff(){ document.querySelector('#tuna').onclick=scorefunc; } function scorefunc() { var scorep; scorep = scorep + 1; document.getElementById("scorez").innerHTML = "You have found me: " + scorep + " times";
function getStuff(){
document.querySelector('#tuna').onclick=scorefunc;
}
function scorefunc() {
var scorep;
scorep = scorep + 1;
document.getElementById("scorez").innerHTML = "You have found me: " + scorep + " times";
}
基本上,当用户单击id为tuna的段落元素(p)时,scorefunc运行。我试图在每次点击时给分数加1,但它却说“你已经找到我很多次了”
如果这是错误的,我的HTML代码如下所示:
<p id ="scorez">You have found me: </p>
您找到我了:
提前感谢:)问题是
scorep
是未定义的。您声明了它(即var scorep
),但从未定义它,因此您实际上是在尝试将未定义的和1
添加在一起,这当然会产生NaN
将您的声明更改为var scorep=0
,以解决问题
此外,如果希望scorep
在每次单击p
元素时递增1,则必须创建一个变量或在局部范围之外声明该变量
var scorep = 0
function scorefunc() {
scorep += 1
document.getElementById("scorez").innerHTML = `You have found me: ${scorep} times`
}
问题是score
是未定义的。您声明了它(即var scorep
),但从未定义它,因此您实际上是在尝试将未定义的和1
添加在一起,这当然会产生NaN
将您的声明更改为var scorep=0
,以解决问题
此外,如果希望scorep
在每次单击p
元素时递增1,则必须创建一个变量或在局部范围之外声明该变量
var scorep = 0
function scorefunc() {
scorep += 1
document.getElementById("scorez").innerHTML = `You have found me: ${scorep} times`
}
score
开始时未定义
。你不能在未定义的中添加1,它会给你NaN
哇,我真傻!谢谢你,伙计!通过设置var scorep=0进行修复;此外,如果scorep在函数中定义为0,则每次调用函数时,它都将重置为0。因此,将您的score初始化移到函数之外:)正在处理那个Syndey哈哈!非常感谢。我对本地/全局感到困惑,因为我习惯了python,你的建议修复了它python使用完全相同的作用域:scorep
开始未定义的。你不能在未定义的中添加1,它会给你NaN
哇,我真傻!谢谢你,伙计!通过设置var scorep=0进行修复;此外,如果scorep在函数中定义为0,则每次调用函数时,它都将重置为0。因此,将您的score初始化移到函数之外:)正在处理那个Syndey哈哈!非常感谢。我对本地/全局感到困惑,因为我习惯了python,您的建议修复了它python使用完全相同的范围: