Использование функций в JavaScript

В этом руководств е вы узнаете о функциях JavaScript и о том, как их использовать для структурирования кода, применяя мелкие и повторяющиеся единицы.

При разработке приложения часто требуется выполнять одно и то же действие во многих местах. Например, вы можете захотеть показывать сообщение всякий раз, когда возникает ошибка.

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

JavaScript предоставляет множество встроенных функций, таких как parseInt() и parseFloat(). В этом руководстве вы узнаете, как разрабатывать пользовательские функции.

Объявление функции

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

function functionName(parameters) {
    // function body // ... 
}

Имя функции должно быть действительным идентификатором JavaScript. По соглашению имена функций пишутся в camelCase и начинаются с таких глаголов, как getData(), fetchContents() и isValid().

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

Следующий код объявляет функцию say(), которая не принимает никаких параметров:

function say() { 
}

Далее объявляется функция с именем square(), которая принимает один параметр:

function square(a) { 
}

И следующий пример объявляет функцию с именем add(), которая принимает два параметра:

function add(a, b) { 
}

Внутри тела функции вы можете написать код для реализации действия. Например, следующая функция say() просто выводит сообщение на консоль:

function say(message) { 
    console.log(message); 
}

В теле функции say() мы вызываем функцию console.log() для вывода сообщения на консоль.

Вызов функции

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

functionName(arguments);

При вызове функции JavaScript выполняет код внутри тела функции. Например, ниже показано, как вызвать функцию say() :

say('Hello');

В этом примере мы вызываем функцию say() и передаем ей буквальную строку 'Hello'.

Параметры и аргументы

Термины параметры и аргументы часто используются взаимозаменяемо. Однако по сути они разные.

При объявлении функции вы указываете параметры. Однако при вызове функции вы передаете аргументы, соответствующие параметрам.

Например, в функции say() message является параметром, а строка 'Hello' — аргументом, соответствующим параметру message.

Возврат значения

Каждая функция в JavaScript неявно возвращает undefined значение, если вы явно не укажете возвращаемое значение. Например:

function say(message) { 
    console.log(message); 
}
let result = say('Hello'); 
console.log('Result:', result);

Выход:

Hello 
Result: undefined

Чтобы указать возвращаемое значение для функции, вы используете оператор return, за которым следует выражение или значение, например:

return expression;

Следующая функция add() возвращает сумму двух аргументов:

function add(a, b) { 
    return a + b; 
}

Ниже показано, как вызвать функцию add() :

let sum = add(10, 20); 
console.log('Sum:', sum);

Выход:

Sum: 30

В следующем примере несколько операторов return используются в функции для возврата разных значений в зависимости от условий:

function compare(a, b) {
    if (a & gt; b) {
        return - 1;
    } else if (a & lt; b) {
        return 1;
    }
    return 0;
}

Функция compare() сравнивает два значения. Она возвращает:

  • -1, если первый аргумент больше второго.
  • 1, если первый аргумент меньше второго.
  • 0, если первый аргумент равен второму.

Функция немедленно прекращает выполнение, как только достигает оператора return. Следовательно, вы можете использовать оператор return без значения для преждевременного выхода из функции, например:

function say(message) {
    // show nothing if the message is empty 
    if (!message) {
        return;
    }
    console.log(message);
}

В этом примере, если message пустое (или undefined ), функция say() ничего не покажет.

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

Объект arguments

Внутри функции вы можете получить доступ к объекту с именем arguments, который представляет именованные аргументы функции.

Объект arguments ведет себя как массив, хотя он не является экземпляром типа Array.

Например, вы можете использовать квадратную скобку [] для доступа к аргументам: arguments[0] возвращает первый аргумент, arguments[1] возвращает второй и так далее.

Кроме того, вы можете использовать свойство length объекта arguments для определения количества аргументов.

В следующем примере реализована универсальная функция add(), которая вычисляет сумму любого количества аргументов.

function add() {
    let sum = 0;
    for (let i = 0; i & lt; arguments.length; i++) {
        sum += arguments[i];
    }
    return sum;
}

Следовательно, вы можете передать любое количество аргументов функции add(), например:

console.log(add(1, 2)); // 3 
console.log(add(1, 2, 3, 4, 5)); // 15

Поднятие функции

В JavaScript вы можете использовать функцию до ее объявления. Например:

showMe(); // a hoisting example
function showMe() {
    console.log('an hoisting example');
}

Эта особенность называется подъемом функции.

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

Ниже показана версия кода перед его выполнением движком JavaScript:

function showMe(){ 
console.log('a hoisting example'); 
} 
showMe(); // a hoisting example

Заключение

  • Используйте ключевое слово function для объявления функции.
  • Используйте functionName() для вызова функции.
  • Все функции неявно возвращают undefined, если они явно не возвращают значение.
  • Используйте оператор return, чтобы явно вернуть значение из функции.
  • Переменная arguments — это массивоподобный объект внутри функции, представляющий аргументы функции.
  • Подъем функции позволяет вызывать функцию перед ее объявлением.
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript