Es la diferencia de tiempo (en milisegundos) desde el momento en que se programó para ejecutarlo y cuándo se ejecutó realmente.
alert(setTimeout(function(a) { alert(a) }, 2000));
Si desactiva la primera alerta en el tiempo, verá la siguiente alerta está en algún lugar de -10 a 10. Si espera unos segundos, verá algo que es alrededor del tiempo que esperó menos 2.000.
Lo mismo se puede ver para setInterval. Ejecute lo siguiente en Firebug:
setInterval(function(a) { alert(a); }, 2000);
Intente cerrar la alerta rápidamente, alrededor de 0 nuevamente. Déjalo abierto: te dará un gran valor.
Nota Esto está en Firefox Mac, donde mantener una alerta abierta detendrá el procesamiento de Javascript, por lo que el temporizador no se ejecutará hasta que cierre la alerta. El comportamiento de las pruebas anteriores puede ser diferente en otros navegadores
¡Gran pregunta! Nunca había pensado en probar esto antes. – Nicole