Такую ситуацию можно отловить и назначить значение «по умолчанию»:
| function showMessage(from, text) {
|
| if (text === undefined) {
|
| text = 'текст не передан';
|
| }
|
|
|
| alert(from + ": " + text);
|
| showMessage("Маша", "Привет!"); // Маша: Привет!
|
| showMessage("Маша"); // Маша: текст не передан
|
При объявлении функции необязательные аргументы, как правило, располагают в конце списка.
Для указания значения «по умолчанию», то есть, такого, которое используется, если аргумент не указан, используется два способа:
- Можно проверить, равен ли аргумент undefined, и если да — то записать в него значение по умолчанию. Этот способ продемонстрирован в примере выше.
- Использовать оператор ||:
| function showMessage(from, text) {
|
| text = text || 'текст не передан';
|
Второй способ считает, что аргумент отсутствует, если передана пустая строка, 0, или вообще любое значение, которое в булевом виде является false.
Если аргументов передано больше, чем надо, например showMessage("Маша", "привет", 1, 2, 3), то ошибки не будет. Но так как для «лишних» аргументов не предусмотрены параметры, то доступ к ним можно будет получить только через специальный объект arguments, который мы рассмотрим в главе Псевдо-массив arguments.