указать пустые скобки — это обязательно.
В пределах 
return 
Здесь 
Пример объявления функции:
function divide(a, b) {
var c;
c = a / b;
return c;
}
Данная функция принимает два параметра — a и b, — после чего делит a на b и возвращает частное от этого деления.
Эту функцию можно записать компактнее:
function divide(a, b) {
return a / b;
}
Или даже так, в одну строку:
function divide(a, b) { return a / b; }
JavaScript позволяет нам создавать так называемые 
function divide(a, b) {
if (typeof(b) == 'undefined') b = 2;
return a / b;
}
Понятно, что мы должны как-то выяснить, был ли при вызове функции указан параметр b. Для этого мы используем оператор получения типа typeof (он был описан ранее). Если параметр b не был указан, данный оператор вернет строку 'undefined'; тогда мы создадим переменную с именем b, как и у необязательного параметра, и присвоим ей число 2 — значение этого параметра по умолчанию, — которое и будет использовано в теле функции. Если возвращенное оператором значение иное, значит, параметр b был указан при вызове, и мы используем значение, которое было передано с ним.
Функции и переменные. Локальные переменные
Объявленные ранее функции создают внутри своего тела собственные переменные. Это так называемые 
Разумеется, любая функция может обращаться к любой переменной, объявленной вне ее тела (переменной 
Вызов функций
После объявления функции ее можно 
Здесь указывается имя нужной функции и в круглых скобках перечисляются 
Функция вернет результат, который можно присвоить переменной или использовать в выражении.
При вызове функции подставляйте именно фактические параметры, а не формальные, указанные в объявлении функции.
Вот пример вызова объявленной нами ранее функции divide:
d = divide(3, 2);
Здесь мы подставили в выражение вызова функции фактические параметры — константы 3 и 2.
А здесь мы выполняем вызов функции с переменными в качестве фактических параметров:
s = 4 * divide(x, r) + y;
Если функция имеет необязательные параметры и нас удовлетворяют их значения по умолчанию, мы можем при вызове не указывать эти параметры, все или некоторые из них. Например, функцию divide со вторым необязательным параметром мы можем вызвать так:
s = divide(4);
Тогда в переменной s окажется число 2 — результат деления 4 (значение первого параметра) на 2 (значение второго, необязательного, параметра по умолчанию).
Если функция не возвращает результат, то ее вызывают так:
initVars(1, 2, 3, 6);
Более того, так можно вызвать и функцию, возвращающую результат, который в этом случае будет отброшен. Такой способ вызова может быть полезен, если результат, возвращаемый функцией, не нужен для работы Web-сценария.
Если функция не принимает параметров, при ее вызове все равно нужно указать пустые скобки, иначе возникнет ошибка выполнения Web-сценария:
s = computeValue();
Функции могут вызывать друг друга. Вот пример:
function cmp(c, d, e) {
var f;
f = divide(c, d) + e;
return f;
}
Здесь мы использовали в функции cmp вызов объявленной ранее функции divide.

 
                