JavaScript функции: setTimeout, setInterval и функциональные выражения

Функциональные выражения всегда анонимны, поскольку не имеют имени. Рассмотрим их практическое применение.

Объявление функционального выражения

Нельзя объявить функциональное выражение напрямую. Это приводит к синтаксической ошибке.

// Невозможно использовать функциональное выражение самостоятельно
function (){  // синтаксическая ошибка
}

Результат: SyntaxError: Unexpected token ‘(‘. Это ключевое отличие от обычных функций.

Присваивание функционального выражения переменной

Анонимные функциональные выражения обычно присваиваются переменным с помощью const, поскольку значение переменной не будет переприсваиваться.

const myFunction = function() {
  console.log("Hello");
};

myFunction(); // Выведет "Hello" в консоль
console.log(myFunction); // Выведет содержимое переменной myFunction (анонимную функцию)

myFunction содержит функцию. Вызов console.log(myFunction) отобразит саму функцию, а myFunction() — её результат (в этом примере undefined, так как функция ничего не возвращает).

Функциональные выражения как аргументы функций

Наиболее распространенное применение — использование в качестве аргументов других функций, например, коллбэков. Рассмотрим setTimeout, метод глобального объекта window.

setTimeout(function() {
  console.log("Delayed message");
}, 1000); // Выведет "Delayed message" через 1 секунду

setTimeout принимает два аргумента: коллбэк-функцию и время задержки в миллисекундах. Здесь используется анонимная функция. Можно использовать именованную функцию, но это менее практично.

function myFunction() {
  console.log("Delayed message");
}
setTimeout(myFunction, 3000); // Выведет "Delayed message" через 3 секунды

Использование setInterval

setInterval аналогична setTimeout, но вызывает коллбэк-функцию периодически, с заданным интервалом.

let i = 1;
setInterval(function() {
  console.log("Message logged each second: " + i++);
}, 1000); // Выводит сообщение каждую секунду с увеличивающимся счетчиком

Переменная i используется для вывода уникального сообщения каждую секунду.

Функциональные выражения — мощный инструмент в JavaScript, особенно полезный при работе с коллбэками в таких функциях, как setTimeout и setInterval. Их анонимность делает код более компактным и читабельным.

Что будем искать? Например,программа