6.1 Разные способы объявления функций

Еще немного полезной информации про функции в JavaScript. Функции можно объявить несколькими способами, у каждого из них есть свои нюансы.

Самый стандартный способ такой: ключевое слово function и имя.

function print(data)
{
  console.log(data);
}

Второй способ — это сначала объявить переменную, а затем присвоить ей анонимную функцию.

window.print = function(data)
 {
     console.log(data);
 }

Эти два способа дают абсолютно эквивалентный результат. Когда вы объявляете обычную функцию первым способом, то у объекта window создается новое поле с именем твоей функции и в него присваивается ссылка на нее.

6.2 Анонимные функции

Также можно создать анонимную функцию и не присваивать ее значение ничему. А зачем же такая функция нужно? Как ее вызвать?

А все дело в том, что можно вызвать ее сразу. Допустим мы объявили функцию temp и тут же вызвали ее:

var temp = function(data)
    {
        console.log(data);
    }

temp("some info");

Так же можно ее объявить и сразу вызвать:

(function(data)
 {
     console.log(data);
 })("some info");

Чем-то напоминает анонимные inner-классы в Java…

6.3 Метод eval()

И еще один интересный способ выполнить код в JavaScript – это вообще не создавать функции. В JavaScript можно просто выполнить код, заданный в виде строки. Для этого есть специальная функция eval() (от evaluation). Общий формат вызова выглядит так:

var result = eval("код или выражение");

Примеры:

var x = eval("1/2");
eval("alert('Hi!')");