我想使用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);
}
答案 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
因为得分尚未存在。