Může setTimeout někdy vrátit 0 jako id?

Píšu kontrolu, zda je aktivní časový limit. Přemýšlel jsem o tom:

var a = setTimeout(fn, 10);
// ... Other code ... where clearTimeout(a) can be called and set to null
if (a != null)
{
   // do soemthing
}

Zajímalo by mě, jestli by někdy bylo možné, že a bude 0. V tom případě bych použil a !== null

Odpověď

Za prvé:0 není totéž jako null, (0 ==null) by bylo v každém případě nepravdivé“;

pokud chcete otestovat „a“ proti něčemu:nejprve definujte „a“ a později přiřaďte settimeout „a“. poté zkontrolujte podle typu „a“. Pokud je „nedefinováno“, časovač se ještě nespustil