Странное случайное значение в качестве параметра обработчика интервалов по умолчанию
-
21-09-2019 - |
Вопрос
Только что наткнулся на это.На самом деле это ни на что не влияет, но мне интересно, почему это происходит.
Если я запущу следующий код в Firefox с включенным firebug:
setInterval(function(param)
{
console.log("param is %o",param)
},500);
param, похоже, присваивается неопределенно случайное значение:
param is -2
param is -1
param is -2
param is 1
param is -1
param is 6
param is -1
param is 0
param is -2
param is 2
param is 0
param is 2
param is 0
param is 0
param is 0
[..]
param is 0
param is 0
param is 0
param is 0
param is 0
param is 0
param is 0
param is 911
param is 0
param is 0
param is 0
param is -1
Я действительно ценю, что я не передаю никаких аргументов в setInterval для передачи функции, но почему javascript выбирает передачу этого случайного числа?
Я бы ожидал undefined или что-то в этом роде...
Ваше здоровье
p.s.Не тестировался в других браузерах
Решение
Похоже, это зависит от загрузки процессора Firefox.
Я бы предположил, что это задержка с момента, когда должен был быть вызван обратный вызов.
Редактировать: Я был прав.Это количество миллисекунд с опозданием на обратный вызов.
Другие советы
это идентификатор интервала, автоматически устанавливаемый window.setInterval
.если вы сохраните результат, вы можете очистить интервал позже (чтобы остановить его).
var intID = window.setInterval( function(){ alert("I'm annoying!"); }, 10000 );
// this will kill it before it annoys you, :D
window.clearInterval( intID );
это также относится к window.setTimeout
:
var timeID = window.setTimeout( function(){ alert("I'm annoying!"); }, 10000 );
// this will kill it before it annoys you, :D
window.clearTimeout( timeID );