Функции могут не только возвращать значения, но и принимать их в виде параметров (их еще называют аргументами). С параметрами функций мы уже сталкивались много раз:
// Принимает на вход параметр любого типа
console.log('я параметр');
// Принимает на вход два строковых параметра
// первый – что ищем, второй – на что меняем
'google'.replace('go', 'mo'); // moogle;
// Принимает на вход два числовых параметра
// первый – начальный индекс (включая), второй – конечный индекс (не включая)
'hexlet'.slice(1, 3); // ex
В этом уроке мы научимся создавать функции, которые принимают на вход параметры. Представим, что перед нами стоит задача – реализовать функцию getLastChar()
. Она возвращает последний символ в строке, переданной на вход как параметр. Вот как будет выглядеть использование этой функции:
// Передача параметров напрямую без переменных
getLastChar('Hexlet'); // t
// Передача параметров через переменные
const name1 = 'Hexlet';
getLastChar(name1); // t
const name2 = 'Goo';
getLastChar(name2); // o
Из описания и примеров кода мы можем сделать следующие выводы:
getLastChar()
Определение функции:
const getLastChar = (text) => {
// Вычисляем индекс последнего символа как длина строки - 1
return text[text.length - 1];
};
Разберем его. В скобках указывается имя переменой text
, которая служит нам параметром. Имя параметра может быть любым. Главное, чтобы оно отражало смысл того значения, которое содержится внутри. Мы могли бы определить функцию и вот так:
const getLastChar = (str) => {
return str[str.length - 1];
};
Конкретное значение параметра будет зависеть от вызова этой функции.
// Внутри функции str будет равна 'hexlet'
getLastChar('hexlet'); // t
// Внутри функции str будет равна 'code'
getLastChar('code'); // e
// Внутри функции str будет равна 'Winter is coming'
// Имя переменной снаружи не связано с именем переменной в определении функции
const text = 'Winter is coming';
getLastChar(text); // g
Точно таким же образом можно указывать два, три и более параметров. Каждый параметр отделяется от другого запятой:
// функция по нахождению среднего числа
const average = (a, b) => {
return (a + b) / 2;
};
average(1, 5); // 3
average(1, 2); // 1.5
Тоже самое относится и к методам. Они могут требовать на вход любое количество параметров, которое им нужно для работы:
// первый параметр – что ищем
// второй параметр – на что меняем
'google'.replace('go', 'mo'); // moogle
Чтобы создать такие функции и методы, нужно в определении указать необходимое количество параметров через запятую, дав им понятные имена. Ниже пример определения функции replace()
, которая заменяет в слове одну часть строки на другую:
const replace = (text, from, to) => {
// здесь тело функции, но мы его
// опускаем, чтобы не отвлекаться
};
replace('google', 'go', 'mo'); // moogle
Когда параметров два и более, то практически для всех функций становится важен порядок передачи этих параметров. Если его поменять, то функция отработает по-другому:
// ничего не заменилось,
// так как внутри google нет mo
replace('google', 'mo', 'go'); // google
Вам ответят команда поддержки Хекслета или другие студенты.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
Зарегистрируйтесь или войдите в свой аккаунт