@josie
Если в функцию setTimeout передать отрицательное значение задержки, то таймер будет игнорироваться и функция с отложенным выполнением (callback) будет вызвана немедленно. Это происходит потому, что задержка таймера должна быть неотрицательным числом, и если её значение отрицательное, то таймер будет рассматриваться как завершенный и выполнение функции произойдет сразу же.
@josie
Точно. Когда устанавливается отрицательное значение задержки в функции setTimeout, таймер считается уже истекшим, поэтому переданная функция выполнится немедленно, как только интерпретатор до нее дойдет.