Ais*_*war 29 html javascript settimeout
我正在写一张检查,看看是否有超时.我在想这样做:
var a = setTimeout(fn, 10);
// ... Other code ... where clearTimeout(a) can be called and set to null
if (a != null)
{
// do soemthing
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有可能a将为0.在这种情况下我会使用 a !== null
Fel*_*ing 29
鉴于此,它不应该:
handle = window . setTimeout( handler [, timeout [, arguments ] ] )
Run Code Online (Sandbox Code Playgroud)
让
handle是一个用户代理定义的整数,它是大于零,将确定的超时由该呼叫来设置.
Ali*_*aru 14
微软,Sun和Mozilla的规范只是说它将返回一个整数.所以0可能包括在内.
某些实现可能(并且可能)排除0但您不应该依赖它.你应该去!==.
总结一下:尽管可能所有浏览器都0从返回的ID中排除,但setTimeout您不应该记住这些代码,特别是当您需要做的就是添加额外的代码时=.
第一:0 与 null 不同,(0 == null) 在任何情况下都是 false';
如果您想针对某些内容测试“a”:首先定义“a”,然后将 settimeout 分配给“a”。然后检查“a”的类型。如果其“未定义”,则计时器尚未触发