JavaRush/Курсы/JSP & Servlets/Типы функций в JavaScript

Типы функций в JavaScript

Открыта

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!')");
Комментарии (6)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей
Уровень 115
21 мая 2025, 11:09
Очень крутое изложение лекций. Очень содержательно. Жаль что инфа старая. Уже с 2015 года есть ещё arrow function. А ля лямбда в Java.
Виктор
Уровень 109
Expert
18 декабря 2023, 19:27
А зачем же такая функция нужно? Просьба исправить опечатку в разделе 6.2
Роман
Уровень 88
3 ноября 2024, 12:42
специально назло тебе никто это исправлять не будет
Виталий
Уровень 107
Expert
5 сентября 2023, 16:39
Первый
Виктор
Уровень 40
20 сентября 2023, 10:35
серьезно? Вам 10 лет?
5 января 2024, 08:36
Третий