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使用完全相同的范围: