Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс JavaScript
/

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

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

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

Если аргумент не передан, используется это значение. Если аргумент указан, он заменяет умолчание.

function greet(name = 'World') {
  console.log(`Hello, ${name}!`);
}

greet('Alice'); // => Hello, Alice!
greet();        // => Hello, World!  (использовано значение по умолчанию)

Пример: повторение текста

Сделаем функцию, которая повторяет строку несколько раз. По умолчанию пусть будет один раз, но при желании можно указать другое количество. Для повторения строки в JavaScript есть метод repeat():

function repeat(text, times = 1) {
  return text.repeat(times);
}

console.log(repeat('Hi'));    // => Hi
console.log(repeat('Hi', 3)); // => HiHiHi
function repeat(text, times = 1)   ← times имеет значение по умолчанию

repeat('go')      →  times = 1  (по умолчанию)
repeat('go', 5)   →  times = 5  (явно указано)

Необязательные параметры всегда указываются в конце списка. Поэтому сначала идёт обязательный параметр text, а уже после него — times со значением по умолчанию.

Пример: склейка слов с разделителем

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

function joinWords(word1, word2, separator = ' ') {
  return word1 + separator + word2;
}

console.log(joinWords('King', 'Road'));         // => King Road
console.log(joinWords('Dragon', 'stone', '-')); // => Dragon-stone

Пример: несколько параметров по умолчанию

Функция может содержать более одного параметра со значением по умолчанию. Сделаем функцию, которая строит строку-разделитель. По умолчанию символ — дефис, а длина равна 10:

function makeLine(symbol = '-', length = 10) {
  return symbol.repeat(length);
}

console.log(makeLine());        // => ----------
console.log(makeLine('*'));     // => **********
console.log(makeLine('*', 5));  // => *****
console.log(makeLine('#', 3));  // => ###

Пример: скрытие номера карты

function getHiddenCard(cardNumber, starsCount = 4) {
  return '*'.repeat(starsCount) + cardNumber.slice(-4);
}

console.log(getHiddenCard('1234567890123456'));    // => ****3456
console.log(getHiddenCard('1234567890123456', 2)); // => **3456

Параметр starsCount по умолчанию равен 4, но можно передать другое значение.

Задание

Напишите функцию getHiddenCard(cardNumber, starsCount = 4), которая принимает номер карты (строку) и возвращает скрытый номер: звёздочки + последние 4 цифры.

getHiddenCard('1234567890123456')    // => '****3456'
getHiddenCard('1234567890123456', 2) // => '**3456'

Используйте '*'.repeat(starsCount) и .slice(-4).

Коммерческий опыт и Трудоустройство

Полезное

  • Параметры по умолчанию

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
/
Программирование
/
Курс JavaScript
/

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

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

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

Если аргумент не передан, используется это значение. Если аргумент указан, он заменяет умолчание.

function greet(name = 'World') {
  console.log(`Hello, ${name}!`);
}

greet('Alice'); // => Hello, Alice!
greet();        // => Hello, World!  (использовано значение по умолчанию)

Пример: повторение текста

Сделаем функцию, которая повторяет строку несколько раз. По умолчанию пусть будет один раз, но при желании можно указать другое количество. Для повторения строки в JavaScript есть метод repeat():

function repeat(text, times = 1) {
  return text.repeat(times);
}

console.log(repeat('Hi'));    // => Hi
console.log(repeat('Hi', 3)); // => HiHiHi
function repeat(text, times = 1)   ← times имеет значение по умолчанию

repeat('go')      →  times = 1  (по умолчанию)
repeat('go', 5)   →  times = 5  (явно указано)

Необязательные параметры всегда указываются в конце списка. Поэтому сначала идёт обязательный параметр text, а уже после него — times со значением по умолчанию.

Пример: склейка слов с разделителем

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

function joinWords(word1, word2, separator = ' ') {
  return word1 + separator + word2;
}

console.log(joinWords('King', 'Road'));         // => King Road
console.log(joinWords('Dragon', 'stone', '-')); // => Dragon-stone

Пример: несколько параметров по умолчанию

Функция может содержать более одного параметра со значением по умолчанию. Сделаем функцию, которая строит строку-разделитель. По умолчанию символ — дефис, а длина равна 10:

function makeLine(symbol = '-', length = 10) {
  return symbol.repeat(length);
}

console.log(makeLine());        // => ----------
console.log(makeLine('*'));     // => **********
console.log(makeLine('*', 5));  // => *****
console.log(makeLine('#', 3));  // => ###

Пример: скрытие номера карты

function getHiddenCard(cardNumber, starsCount = 4) {
  return '*'.repeat(starsCount) + cardNumber.slice(-4);
}

console.log(getHiddenCard('1234567890123456'));    // => ****3456
console.log(getHiddenCard('1234567890123456', 2)); // => **3456

Параметр starsCount по умолчанию равен 4, но можно передать другое значение.

Задание

Напишите функцию getHiddenCard(cardNumber, starsCount = 4), которая принимает номер карты (строку) и возвращает скрытый номер: звёздочки + последние 4 цифры.

getHiddenCard('1234567890123456')    // => '****3456'
getHiddenCard('1234567890123456', 2) // => '**3456'

Используйте '*'.repeat(starsCount) и .slice(-4).

Коммерческий опыт и Трудоустройство

Полезное

  • Параметры по умолчанию

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

// @ts-check

import { expect, test } from 'vitest';
import f from './index.js';

test('default parameters', () => {
  expect(f('1234123412341234')).toEqual('****1234');
  expect(f('1234123412344321')).toEqual('****4321');
  expect(f('1234123412344321', 2)).toEqual('**4321');
  expect(f('1234123412341234', 12)).toEqual('************1234');
});
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →