Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Параметры функций Основы JavaScript

Параметры функции

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

// Принимает на вход параметр любого типа
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

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
Иконка программы Фронтенд-разработчик
Профессия
с нуля
Разработка фронтенд-компонентов для веб-приложений
30 марта 10 месяцев
Иконка программы Node.js-разработчик
Профессия
с нуля
Разработка бэкенд-компонентов для веб-приложений
30 марта 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
с нуля
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
30 марта 16 месяцев
Иконка программы Инженер по автоматизированному тестированию на JavaScript
Профессия
Новый В разработке с нуля
Автоматизированное тестирование веб-приложений на JavaScript
дата определяется 10 месяцев

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»