Javascript 使用typeof…;!=&引用;“未定义”;你怎么办?

Javascript 使用typeof…;!=&引用;“未定义”;你怎么办?,javascript,if-statement,undefined,Javascript,If Statement,Undefined,对于学校来说,我需要用JavaScript编写一个游戏,但问题是我不理解这部分代码的含义: if (typeof game_loop != "undefined") clearInterval(game_loop); game_loop = setInterval(paint, 60); 如果game\u loop存在,则停止计时器 在此之后,将计时器设置为每60毫秒执行一次paint。如果存在游戏循环,则停止计时器 之后,将计时器设置为每60毫秒执行一次paint if(游戏循环的类

对于学校来说,我需要用JavaScript编写一个游戏,但问题是我不理解这部分代码的含义:

if (typeof game_loop != "undefined") clearInterval(game_loop);
    game_loop = setInterval(paint, 60);

如果
game\u loop
存在,则停止计时器


在此之后,将计时器设置为每60毫秒执行一次
paint

如果存在
游戏循环,则停止计时器

之后,将计时器设置为每60毫秒执行一次
paint

if(游戏循环的类型!=“未定义”)


如果变量
game\u loop
未定义

clearInterval(游戏循环)

清除id为
game\u loop

game\u loop=setInterval(画图,60)

每隔
60
毫秒调用
paint
,并将间隔id存储在
game\u loop


理想情况下,为了清晰起见,代码应编写为:

if (game_loop !== undefined) {
    clearInterval(game_loop);
}
game_loop = setInterval(paint, 60);
xyz的类型!='undefined'
用于避免在
窗口时出现可能的错误。undefined
被覆盖,但任何人都不应该覆盖
窗口。undefined
,所以我不会担心它

if(游戏循环的类型!=“未定义”)


如果变量
game\u loop
未定义

clearInterval(游戏循环)

清除id为
game\u loop

game\u loop=setInterval(画图,60)

每隔
60
毫秒调用
paint
,并将间隔id存储在
game\u loop


理想情况下,为了清晰起见,代码应编写为:

if (game_loop !== undefined) {
    clearInterval(game_loop);
}
game_loop = setInterval(paint, 60);

xyz的类型!='undefined'
用于在
窗口时避免可能出现的错误。undefined
被覆盖,但任何人都不应该覆盖
窗口。undefined
,所以我不会担心它。它检查
游戏循环是否存在,如果存在,则清除间隔。然后,它每隔60毫秒调用一次
paint

它正在检查
game\u loop
是否存在,如果存在,则清除间隔。然后,它每隔60毫秒调用一次
paint

但是如果我这样做:if(游戏循环的类型!=“未定义”){clearInterval(游戏循环);}else{game\u循环=setInterval(paint,60);}它不工作?@StuiterSlurf,
game\u循环=setInterval(…)必须始终被调用。这不是一个
else
条件。“如果变量
game\u loop
undefined
”-您可能的意思是未
undefined
如果(game\u loop!==undefined)
未声明
game\u loop
将返回错误。如果它被声明了,但是它是未定义的,那么在它上面调用
clearInterval
是没有坏处的。@RickHitchcock,总是使用
“使用严格的”
,你就不需要担心这些事情。但是如果我这样做了:If(typeof game_loop!=“undefined”){clearInterval(game_loop);}else{game_loop=setInterval(paint,60)}它不工作?@StuiterSlurf,
game\u loop=setInterval(…)必须始终被调用。这不是一个
else
条件。“如果变量
game\u loop
undefined
”-您可能的意思是未
undefined
如果(game\u loop!==undefined)
未声明
game\u loop
将返回错误。如果它已声明但未定义,则在其上调用
clearInterval
并无害处。@RickHitchcock,请始终使用
“use strict”
,这样您就不必担心这些事情了。