Мне не удалось узнать больше об этом параметре по умолчанию, с которым я столкнулся, и надеялся, что кто-то может указать объяснение.
В Firefox (в данном случае 3.6), если вы вызываете следующий код:
function test(someVar) {
console.log('test ' + someVar);
}
setTimeout(test, 0);
Он будет записывать «случайное» число на консоль.Я знаю, что вы можете передавать параметры в Firefox следующим образом:
setTimeout(test, 0, param1, param2);
Но похоже, что Firefox автоматически отправляет значение.Я думаю это количество мс после запрошенного времени вызова, но я не могу быть уверен.(Например: now () + 0ms == now (), но так как он не может вызвать прямо сейчас, он ожидает очередь выполнения и возвращает количество мс после того времени?) Если я установлю 500 мс для времени ожидания, оно обычно возвращает0, если у меня нет долго работающего скрипта.
Я также знаю, что Firefox ограничит запросы на тайм-аут до 10 мс, а установка 0 сделает его по умолчанию 10 мс.Если это значение является «значением задержки» (т. Е. Оно заняло у нас на 126 мс больше, чем вы запрашивали), основано ли оно на вводимом мной значении (0) или фиксированной минуте?
Один из приведенных ниже ответов предлагаетчто это ручка таймера.Следующий код опровергает это (?):
function test(someVar) {
console.log('test ' + someVar);
}
console.log('Timer ' + setTimeout(test, 0));
Это вернет два разных значения.
Конечно, в IE он вернет undefined
, поэтому я неписать код, который ожидает этого, но мне было любопытно.
(Это фактически вызывало ошибку в некотором коде, над которым я работал, который полагался на необязательные параметры для вызывающей функции. Работал в IE, а не в FF.)