Оголошення і виклик функції

Один з спосіб оголошення функції виглядає так.

function add (x, y) {
    return x + y;
}

Оголошується функція *add* з двома параметрами - *x* і *y*. Функція повертає суму цих параметрів.

Виклик функції виконується наступним чином.

add(2, 3);// 5

Якщо явно не вказувати значення, що повертається, то функція поверне *undefined*.

function lazy() {
}

lazy();//undefined

Можливо повернути будь-яке значення в результаті виклику функції, використовуючи оператор *return*. Функція негайно припиняє виконання, коли використовується оператор *return*.

function add(a, b) {
    console.log('Adding', a, 'and', b);
    return a + b;
    console.log('Never printed');
}

console.log(add(1, 2));  //Adding 1 and 2
												 // 3

Оператор *return* може бути використаний для уникнення непотрібних гілок умов

function add(a, b) {
    if ((typeof a != 'number') || (typeof b != 'number')) {
        return NaN;
    }
// else is not needed, because return causes function to exit immediately
    return a + b;
}

console.log(add('a', 2));// => NaN

Аргументи функції

Функції можна викликати з будь-якою кількістю аргументів.

Якщо параметр не переданий під час виклику, йому буде присвоєно значення *undefined*.

function f(arg1, arg2, arg3) {
    console.log(arg1, arg2, arg3);
}

f(1, 2);// 1, 2, undefined

Можливо перевірити, чи переданий параметр, і якщо ні, то задати йому значення за замовчуванням.

function myMin(a, b) {
    if (b === undefined) {
        return a;
    }

    return a < b ? a : b;
}

myMin(13);// 13

Під час оголошення функції необов'язкові аргументи, як правило, розміщують в кінці списку.

Найчастіше для завдання значення за замовчуванням використовують більш коротку форму з використанням оператора *або* ||.