功能不会记住变量

时间:2015-10-17 20:20:45

标签: javascript function variables global-variables var

我想使用javascript创建记分牌。我创建了一个NaN的全局变量。我还创建了一个带有if语句的函数。如果变量是NaN,则变量必须为0.变量将获得+1。当我单击按钮运行该功能时,结果为1.但是当我重新点击按钮并重新运行该功能时,它保持为1并且不会添加+1。谁能告诉我我做错了什么?

var score = score; //creates a global variable
function addscore(score) {
    alert(score); // just for me to see what value the variable has
    if ((score) = isNaN) {
        var score = 0; // the variable will be a number
    }
    score++;
    alert(score);
}

2 个答案:

答案 0 :(得分:2)

通过使score函数的参数,您声明一个局部变量。您的函数对此局部变量而不是全局变量进行操作,因此每次调用它时都必须传递一个值。

只需从函数声明中删除score

function addscore() {

此外,这条线没有意义:

var score = score;

您无法将score设置为score,因为score尚不存在!只是做:

var score = 0;

if ((score) = NaN) {会为分数指定一个值。您想要检查值,例如if (isNaN(score)) {

答案 1 :(得分:0)

function addscore是你痛苦的原因。您在其中添加了变量score,if条件将引用该变量而不是全局变量。去掉它。您的函数定义应该类似于以下

function addscore() {
....
....
}

同样,在if条件中进行比较时,请使用==代替=,这是用于分配的。

更改行

var score = score; //creates a global variable

类似

var score = 0; //creates a global variable

因为得分尚未存在。