Javascript &引用;分数“;变量不变

Javascript &引用;分数“;变量不变,javascript,html,Javascript,Html,我正在用JavaScript和HTML制作一个在线游戏(非常简单,这是我的第一个)。它工作正常,但有一个大问题。我希望每当单击一个特定的图像时,变量分数的值加上10。以下是我使用的代码: var score = 0; function addScore() { var test = parseInt(score); var score = parseInt(test) + 10; document.getElementById("score").innerHTML=score; } 以及我希望

我正在用JavaScript和HTML制作一个在线游戏(非常简单,这是我的第一个)。它工作正常,但有一个大问题。我希望每当单击一个特定的图像时,变量分数的值加上10。以下是我使用的代码:

var score = 0;
function addScore() {
var test = parseInt(score);
var score = parseInt(test) + 10;
document.getElementById("score").innerHTML=score; }
以及我希望具有以下功能的图像:

<img src='mole.png' alt='mole' onclick='addScore()' />


问题出在哪里?我该如何解决它?

您正在用一个函数跟踪外部
分数
变量。每次将该内部变量重置为
0

不要每次都解析分数,只需初始化一次:

var score = 0;
function addScore() {
     score += 10;
     document.getElementById("score").innerHTML=score;
}

您在全局和本地上声明了分数
,因此该值不会更新

var score = 0;
function addScore() {
var test = parseInt(score);
score = parseInt(test) + 10;
document.getElementById("score").innerHTML=score; }  

通过改变这一点,你可以让你的生活变得简单一些:

1. Don't use the same varibale name in globally & locally.
2. Removing the `parseInt()` method as score is already an Integer.
因此,您的最终脚本应该是:

var score = 0;
function addScore() {
     score += 10;
     document.getElementById("score").innerHTML=score;
}

你和@dystroy都提到了相同的答案,而且都是对的。我想既然你的解释更详细一点,我就记下你的答案。