Podczas przekazywania dużej wartości w milisekundach do setTimeout()
. Na przykład,
setTimeout(some_callback, Number.MAX_VALUE);
i
setTimeout(some_callback, Infinity);
oba powodują, some_callback
że są uruchamiane niemal natychmiast, jakbym przeszedł 0
zamiast dużej liczby jako opóźnienie.
Dlaczego to się dzieje?
delay >>> 0
dzieje się coś podobnego , więc przekazane opóźnienie wynosi zero. Tak czy inaczej, fakt, że opóźnienie jest przechowywane jako 32-bitowa liczba int bez znaku, wyjaśnia to zachowanie. Dzięki!