Назад к вопросам
Intern
83
questionbank

Какие функции существуют в JavaScript?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

В JavaScript существуют следующие виды функций:

  • Объявления функций (Function Declarations): Базовый синтакс для определения функции. Поднимаются (hoisted) при компиляции.

    function sayHello() {
      // Тело функции
      console.log("Привет!");
    }
    
  • Функциональные выражения (Function Expressions): Функция присваивается переменной. Не поднимаются. Могут быть именованными или анонимными.

    const greetUser = function(name) {
      // Тело функции
      console.log(`Привет, ${name}!`);
    };
    
  • Стрелочные функции (Arrow Functions): Более лаконичный синтаксис, представленный в ES6. Имеют особенности в поведении this.

    const add = (a, b) => a + b;
    
  • Методы объектов (Object Methods): Функции, определенные как свойства объекта.

    const user = {
      name: "Иван",
      sayName: function() {
        console.log(this.name);
      }
    };
    
  • Генераторные функции (Generator Functions): Функции, которые могут приостанавливать и возобновлять свое выполнение, используя yield. Возвращают итератор.

    function* counter() {
      let i = 0;
      while (true) {
        yield i++;
      }
    }
    
  • Асинхронные функции (Async Functions): Функции, которые работают с промисами и позволяют использовать ключевое слово await для ожидания выполнения промисов.

    async function fetchData() {
      const response = await fetch("https://api.example.com/data");
      const data = await response.json();
      return data;
    }
    
  • Функции-конструкторы (Constructor Functions): Функции, используемые с оператором new для создания объектов. Традиционный подход к ООП до появления классов.

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    const person1 = new Person("Петр", 30);
    
  • Функции обратного вызова (Callback Functions): Функции, передаваемые в качестве аргумента другой функции для выполнения в определенный момент.

    function processArray(arr, callback) {
      for (let i = 0; i < arr.length; i++) {
        callback(arr[i]);
      }
    }
    
    processArray([1, 2, 3], function(item) {
      console.log(item * 2);
    });
    
  • Немедленно вызываемые функциональные выражения (IIFE - Immediately Invoked Function Expressions): Функции, выполняемые сразу после их определения. Используются для создания локальной области видимости.

    (function() {
      // Локальный код
      const secret = "секрет";
      console.log(secret);
    })();
    

Каждый тип функций имеет свои особенности синтаксиса, области видимости (this) и сценарии использования.