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

Необязательные параметры функций Основы языка JavaScript

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

// Функция возведения в степень
// Второй параметр имеет значение по умолчанию 2
const pow = (x, base = 2) => {
  return x ** base;
};
// 3 во второй степени (двойка задана по умолчанию)
pow(3); // 9
// три в третьей степени
pow(3, 3); // 27

Значение по умолчанию выглядит как обычное присваивание в определении. Оно срабатывает только в том случае, если параметр не передан. К этому нужно привыкнуть. Значение по умолчанию может быть даже в том случае, когда параметр один:

const print = (text = 'nothing') => console.log(text);

print(); // "nothing"
print("Hexlet"); // "Hexlet"

Параметров со значениями по умолчанию может быть сколько угодно:

const f = (a = 5, b = 10, c = 100) => { ... }

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

// Такой код завершится с ошибкой
const f = (a = 5, b = 10, c = 100, x) => { ... }
// И такой
const f = (a = 5, x, b = 10, c = 100) => { ... }

// А вот такой сработает
const f = (x, a = 5, b = 10, c = 100) => { ... }

// И такой
const f = (x, y, a = 5, b = 10, c = 100) => { ... }

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

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

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

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

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

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

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

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
30 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
30 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
30 июня 16 месяцев

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

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

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

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»