Встречается на собеседованиях • сегодня

Как работает settimeout

Функция `setTimeout` используется для выполнения кода или функции спустя заданный интервал времени, однократно. Она является частью Web API в браузерах и глобального объекта `global` в Node.js, что делает её доступной для использования в любом окружении.

Синтаксис

javascript
let timeoutID = setTimeout(function[, delay, arg1, arg2, ...]);
let timeoutID = setTimeout(functionCode[, delay]);
  • function: Будет вызвана после задержки.
  • functionCode: Строка кода для выполнения (использование этой формы не рекомендуется по соображениям безопасности).
  • delay: Задержка в миллисекундах, после которой будет выполнена функция. Если не указать, по умолчанию будет использовано значение `0`.
  • arg1, arg2, ...: Аргументы, которые будут переданы в функцию при её вызове.

Пример:

javascript
function sayHello() {
  console.log('Привет!');
}

// Вызывает функцию sayHello после задержки в 2000 миллисекунд (2 секунды)
setTimeout(sayHello, 2000);

Отмена выполнения `setTimeout`Вызов ее возвращает идентификатор таймера, который можно использовать для отмены выполнения с помощью функции `clearTimeout`.

javascript
let timerId = setTimeout(sayHello, 2000);

// Отменяет выполнение
clearTimeout(timerId);

Особенности поведения

  • Минимальная задержка: В HTML5 спецификация предусматривает минимальную задержку в `4ms` для вложенных таймеров и в некоторых других случаях, что может повлиять на ожидаемое время выполнения.
  • Задержка в неактивных вкладках: Браузеры могут изменять поведение таймеров для неактивных вкладок для оптимизации производительности и энергопотребления. Это может привести к значительно большей задержке, чем указано.
  • Асинхронность: `setTimeout` не блокирует выполнение кода, который следует за ним. Он лишь запланирует выполнение функции на будущее, позволяя остальному коду продолжать выполняться без ожидания.

`setTimeout` широко используется для создания задержек, анимаций, отложенного выполнения кода (например, для дебаунсинга ввода пользователя) и решения других задач, где необходимо управление временем выполнения.

Feb. 26, 2024, easyoffer

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы