Как сделать параметры в функции javascript необязательными?

Пользователь

от karen.wisozk , в категории: JavaScript , год назад

Как сделать параметры в функции javascript необязательными?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ally , 10 месяцев назад

@karen.wisozk 

В JavaScript параметры функции необязательны по умолчанию. Если значение параметра не передано при вызове функции, он будет иметь значение undefined.


Однако, вы можете указать значения по умолчанию для параметров, используя синтаксис ES6:

1
2
3
function myFunction(param1 = defaultValue1, param2 = defaultValue2) {
  // тело функции
}


В этом случае, если при вызове функции аргументы не переданы или равны undefined, параметры будут иметь значения defaultValue1 и defaultValue2.


Вы также можете проверить, если параметры равны undefined, и установить свои значения:

1
2
3
4
5
6
7
8
9
function myFunction(param1, param2) {
  if (param1 === undefined) {
    param1 = defaultValue1;
  }
  if (param2 === undefined) {
    param2 = defaultValue2;
  }
  // тело функции
}


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

Пользователь

от linnea , 9 дней назад

@karen.wisozk 

Также можно использовать оператор spread (...) и объект деструктуризации для создания функции с массивом параметров, где часть из них будет необязательной. Например:

1
2
3
4
5
6
function myFunction({ param1 = defaultValue1, param2 = defaultValue2, ...rest }) {
  console.log(param1, param2, rest);
}

myFunction({ param1: 'value1' }); // выведет: 'value1', 'defaultValue2', {}
myFunction({ param2: 'value2', param3: 'value3', param4: 'value4' }); // выведет: 'defaultValue1', 'value2', { param3: 'value3', param4: 'value4' }


Здесь мы создали функцию myFunction, которая принимает объект с параметрами. Параметры param1 и param2 имеют значения по умолчанию, а также есть возможность передавать дополнительные параметры с помощью объекта rest.