Выполнение функции время javascript

set Timeout ( )

Отложенный вызов функции. Вызывает функцию через указанный промежуток времени.

Время чтения: меньше 5 мин

Обновлено 20 декабря 2021

Кратко

Скопировать ссылку «Кратко» Скопировано

set Timeout ( ) позволяет исполнить функцию через указанный промежуток времени. Функция возвращает числовой идентификатор установленного таймера. Этот идентификатор можно передать в функцию clear Timeout ( ) , чтобы остановить таймер.

Как пишется

Скопировать ссылку «Как пишется» Скопировано

 const timerId = setTimeout(() =>  console.log('Прошла 1 секунда')>, 1000) console.log(timerId)// Выведет число const timerId = setTimeout(() =>  console.log('Прошла 1 секунда') >, 1000) console.log(timerId) // Выведет число      

Пример выше установит таймер в 1 секунду и по истечении этого времени сработает функция, которая выведет в консоль сообщение.

set Timeout ( ) принимает два аргумента:

Миллисекунда – это одна тысячная доля секунды, то есть одна секунда состоит из 1000 миллисекунд.

В результате вызова set Timeout ( ) вернёт идентификатор установленного таймера.

Есть вариант вызова set Timeout ( ) с произвольным количеством аргументов. Тогда все аргументы после второго будут передаваться в выполняемую функцию:

 setTimeout(function(greeting)  console.log(`Через секунду напечатаю «$»`)>, 1000, 'Привет') setTimeout(function(greeting)  console.log(`Через секунду напечатаю «$greeting>»`) >, 1000, 'Привет')      

Этот вариант вызова используется редко.

Как понять

Скопировать ссылку «Как понять» Скопировано

В JavaScript код выполняется по порядку сверху вниз. Если интерпретатор встречает вызов функции, то он сразу выполняет её. Но разработчику часто может понадобиться запланировать вызов функции, чтобы она выполнилась не сразу.

Запланировать одноразовое выполнение функции можно как раз с помощью set Timeout ( ) . Это самый простой способ исполнить функцию асинхронно.

Время таймера не гарантирует, что функция будет выполнена точно в момент, когда таймер закончится. Таймер ждёт, пока выполнится синхронный код и только потом запускает отложенную функцию, если время истекло. Строго говоря, когда мы устанавливаем таймаут, то нужно ожидать, что функция выполнится в произвольный момент после указанного времени.

Таймауты всегда имеют свой числовой идентификатор, он хранится в браузере в списке активных таймеров. Этот идентификатор нужно использовать, если необходимо очистить таймаут.

Таймауты часто применяются для выпадающих списков или тултипов, чтобы закрывать их с небольшой задержкой. Только с помощью таймаутов можно создать такую полезную функцию как debounce ( ) .

На практике

Скопировать ссылку «На практике» Скопировано

Егор Огарков советует

Скопировать ссылку «Егор Огарков советует» Скопировано

🛠 Функция переданная в set Timeout ( ) всегда будет вызвана только после выполнения синхронного кода, даже если выставить таймер в 0 . Дело в том, что такая функция сразу попадает в асинхронную очередь вне зависимости от значения таймера.

 setTimeout(() =>  console.log('Я первый!')>, 0)// таймер равен 0 console.log('Я второй!') setTimeout(() =>  console.log('Я первый!') >, 0) // таймер равен 0 console.log('Я второй!')      

В консоль сообщения выведется в следующем порядке:

🛠 Время таймера нельзя изменить динамически

 // Изначально 1 секундаlet time = 1000 setTimeout(() =>  console.log('Я сработал')>, time) // Поставили время 2 секундыtime = 2000 // Изначально 1 секунда let time = 1000 setTimeout(() =>  console.log('Я сработал') >, time) // Поставили время 2 секунды time = 2000      

Функция всё равно вызовется через секунду. Если возникла необходимость изменить время, то придётся сначала очистить предыдущий таймер и установить новый.

Источник

Измерение времени выполнения функции в JavaScript

Одной из распространенных задач в JavaScript является измерение времени, которое занимает выполнение определенной функции. Это может быть полезно для оптимизации производительности и улучшения эффективности кода.

Возьмем для примера следующую функцию:

function longRunningFunction() < // Какой-то долгий код. >

Для измерения времени выполнения этой функции, можно использовать объект Date и его метод getTime() .

var start = new Date().getTime(); longRunningFunction(); var end = new Date().getTime(); var time = end - start; console.log('Время выполнения = ' + time);

В этом примере start и end — это временные метки, которые установлены до и после выполнения функции, соответственно. Разница между end и start дает время выполнения функции в миллисекундах.

Однако, более точный и надежный способ измерения времени выполнения функции — использование API Performance.now() . Этот метод возвращает текущее время в миллисекундах с точностью до тысячных долей миллисекунды.

var start = performance.now(); longRunningFunction(); var end = performance.now(); var time = end - start; console.log('Время выполнения = ' + time);

Важно отметить, что performance.now() не зависит от системного времени и его изменений, что делает его более подходящим для измерения времени выполнения.

Таким образом, с помощью performance.now() можно точно измерить время выполнения функции в JavaScript.

Источник

Читайте также:  Https e du emias mosreg ru course view php id 103
Оцените статью