Javascript 为什么if语句在js中不起作用

Javascript 为什么if语句在js中不起作用,javascript,Javascript,window.addEventListener(“keyup”,addkey); 函数addkey(){ var x=event.which | | event.keyCode; var-wkey=0; var-op=0; 如果(x==87){ wkey+=1; } 如果(wkey==1&&op==0){ 警惕(“你做得很好!”); op=op+1; } }这是因为您在每次函数运行时定义了wkey和op,您应该在函数外定义它们,以使其按预期工作。这是因为您在每次函数运行时定义了wkey和op,您

window.addEventListener(“keyup”,addkey);
函数addkey(){
var x=event.which | | event.keyCode;
var-wkey=0;
var-op=0;
如果(x==87){
wkey+=1;
}
如果(wkey==1&&op==0){
警惕(“你做得很好!”);
op=op+1;
}

}
这是因为您在每次函数运行时定义了
wkey
op
,您应该在函数外定义它们,以使其按预期工作。

这是因为您在每次函数运行时定义了
wkey
op
,您应该在函数外定义它们,使其按预期工作。

发生这种情况是因为每次调用该函数时,您都将
op
重新初始化为
0
。您只需在
addkey
之外添加delcare
op
,它就可以工作了:

window.addEventListener(“keyup”,addkey);
var-op=0;
var-wkey=0;
函数addkey(事件){
var x=event.which | | event.keyCode;
如果(x==87){
wkey+=1;
}
如果(wkey==1&&op==0){
警惕(“你做得很好!”);
op+=1;
}

}
发生这种情况是因为每次调用函数时都将
op
重新初始化为
0
。您只需在
addkey
之外添加delcare
op
,它就可以工作了:

window.addEventListener(“keyup”,addkey);
var-op=0;
var-wkey=0;
函数addkey(事件){
var x=event.which | | event.keyCode;
如果(x==87){
wkey+=1;
}
如果(wkey==1&&op==0){
警惕(“你做得很好!”);
op+=1;
}

}
每次调用函数时

wkey
设置为
0

然后添加
1

所以它最终总是等于
1

尝试将
wkey
定义为函数外部的
0

或者

if(wkey == null) var wkey = 0;
相反


如果使用此方法,则无需使用
op
。(当然,除非您在别处使用它的值。)

每次调用函数时

wkey
设置为
0

然后添加
1

所以它最终总是等于
1

尝试将
wkey
定义为函数外部的
0

或者

if(wkey == null) var wkey = 0;
相反


如果使用此方法,则无需使用
op
。(当然,除非您在别处使用它的值。)

它不应该是
函数addkey(event)
?不要依赖全局
事件
属性,它只在某些浏览器中有效。相反,请更改为
函数addkey(event){
,以确保在所有浏览器中捕获传递给处理程序的事件。它不应该是
函数addkey(event)
?不要依赖仅在某些浏览器中工作的全局
事件
属性。相反,请更改为
函数addkey(event){
以确保您在所有浏览器中捕获传递给处理程序的事件。他实际上想要计算按W键的次数,因此他无法删除wkey,他不仅希望每次按W键时弹出窗口,而是希望每次wkey增加一次时弹出窗口,而不显示popup-计算W被按了多少次。@Arber Sylejmani你完全正确。似乎我的大脑不再完全清醒。我可能应该去睡觉了。他实际上想计算W键被按了多少次,所以他不能删除wkey,他不只是希望每次按W键都弹出窗口,而是首先要弹出窗口然后每隔一次wkey增加一次,但不显示弹出窗口-计算W被按下的次数。@Arber Sylejmani你完全正确。似乎我的大脑不再完全清醒。我可能应该去睡觉了。