Javascript 使用typeof…;!=&引用;“未定义”;你怎么办?
对于学校来说,我需要用JavaScript编写一个游戏,但问题是我不理解这部分代码的含义: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(游戏循环的类
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”
,这样您就不必担心这些事情了。