Создание пользовательских функций в JavaScript
Пользовательские функции
Функцией в JavaScript называется именованная группа операторов, выполняющих определённую задачу.
Определение функции выглядит следующим образом:
function имя_функции(параметры)
{� … тело …� [return [значение]]�}
Одно из главных предназначений функций: избавление от дублирования кода.
Вызов функции осуществляется по ее имени.
Локальные переменные
Переменные, объявленные внутри функции, видны только внутри этой функции.
Внешние переменные
Функция обладает полным доступом к внешним переменным и может изменять их значение.
Внешняя переменная используется, только если внутри функции нет такой локальной.
Внешние переменные
Если одноимённая переменная объявляется внутри функции, тогда она перекрывает внешнюю.
Параметры
Параметры по умолчанию
Если параметр не указан, то его значением становится undefined.
showMessage("Аня"); // "Аня: undefined«
Если нужно задать параметру text значение по умолчанию, его надо указать после =
Возврат значения
Функция может вернуть результат, который будет передан в вызвавший её код.
Директива return может находиться в любом месте тела функции. Как только выполнение доходит до этого места, функция останавливается, и значение возвращается в вызвавший её код. Вызовов return может быть несколько.
Возврат значения: пример
Функции временной задержки
Можно осуществлять вызов функции через заданный интервал времени. Это называется «планирование вызова».
Для этого существуют два метода:
Эти методы не являются частью спецификации JavaScript. Но большинство сред выполнения JS-кода имеют внутренний планировщик и предоставляют доступ к этим методам.
Метод setTimeout
Пример
Вызов функции спустя одну секунду:
С аргументами:
Метод setInterval
Синтаксис:
Все аргументы имеют такое же значение, как и у метода setTimeout. Но отличие этого метода в том, что функция запускается не один раз, а периодически через указанный интервал времени.
Чтобы остановить дальнейшее выполнение функции, необходимо вызвать clearInterval(timerId).
Пример
Вывод сообщения каждые 2 секунды. Через 5 секунд вывод прекращается.