Функции и аргументы в языке программирования JavaScript


Функция — это фрагмент кода, который не работает, пока к нему не обратятся или не вызовут. Например, функция alert() является типичной предопределенной функцией JavaScript, и потому легко выполняется любым браузером. Это блок кода, который выполняется, только когда мы побудим его действовать. В некотором смысле можно представить функцию как переменную, которая содержит логику, заключающуюся в том, что ссылка на эту переменную будет запускать весь код, хранящийся внутри нее.

Для всех функций характерен общий шаблон. Имя функции всегда сопровождается скобками (без пробела), а затем — парой фигурных скобок, содержащих относящийся к функции код. В скобках иногда указана дополнительная информация, используемая функцией и называемая аргументами.

Аргументы — это данные, которые могут влиять на поведение функции. Например, функция alert в качестве аргумента принимает строку текста, и использует эту информацию для заполнения итогового диалогового окна. Существует два типа функций: «готовые» (собственные функции JavaScript), и те, которые программист создает самостоятельно (пользовательские функции). Давайте рассмотрим оба.

Собственные функции языка JavaScript

В JavaScript существуют сотни встроенных предопределенных функций, в том числе:

  • alert(), conrm() и prompt() — эти функции запускают диалоговые окна на уровне браузера.
  • Date() — возвращает текущую дату и время.
  • parseInt(«123») — эта функция, среди прочего, позволяет принимать строковый тип данных, содержащий числа, и превращает его в числовой тип данных.
  • setTimeout( имяФункции, 5000) — строка передается в функцию как аргумент.

Будет выполнять функцию с задержкой. Функция указывается в первом аргументе, а задержка задается в миллисекундах во втором (в примере 5000 миллисекунд равно 5 секундам).

Пользовательские функции

Разумеется, программист может написать собственные функции. Чтобы создать пользовательскую функцию, введите ключевое слово function, укажите ее имя, добавьте открывающую и закрывающую скобки, а потом — открывающую и закрывающую фигурные скобки.

function name() { // Здесь будет наш код функции. }

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

function foo() {

alert("Наша функция только что была запущена!");

// Код не запустится, пока мы не вызовем функцию 'foo()'

}

Далее мы сможем вызывать эту функцию и выполнять указанный в ней код в любой позиции нашего сценария, написав следующее:

foo(); // Уведомление "Наша функция только что была запущена!"

Мы можем вызывать функцию в коде любое количество раз. Это значительно экономит время и избавляет от избыточного кодирования.

Аргументы JavaScript

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

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

Например, предположим, нам необходимо создать очень простую функцию, которая создает уведомления для определенного количества элементов, находящихся в массиве. Мы уже узнали, что для получения числа элементов в массиве можно использовать .length, поэтому нам просто нужно найти способ, как измерить массив с помощью функции.

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