DevGang
Авторизоваться

Функции в JS

Функция — это блок кода, выполняющий определенную задачу. Он может принимать параметры и возвращать значения. Для обеспечения правильной работы функций вам необходимо изучить Обязательные параметры для функций в JavaScript. Функции в JavaScript рассматриваются как first-class objects, что означает, что они могут быть назначены переменным, переданы в качестве аргументов и возвращены из других функций. Мы предоставляем вам дополнительную информацию о функциях JavaScript: как формируется функция, как ее объявить. методы и операторы.

Типы функций

1. Объявленная функция

Объявление функции - это инструкция, которая определяет функцию с именем, параметрами и телом.

function greet(name) {
  console.log(`Hello, ${name}!`);
}

2. Выраженная функция

Функциональное выражение — это способ определить функцию как выражение, которое можно присвоить переменной.

const greet = function(name) {
  console.log(`Hello, ${name}!`);
};

3. Стрелочная функция

Стрелочная функция — это сокращенный синтаксис для определения функционального выражения. Более подробно вы можете ознакомится с ними в статье Стрелочные функции.

const greet = (name) => {
  console.log(`Hello, ${name}!`);
};

4. Анонимная функция

Анонимная функция - это функция без имени.

const add = function(a, b) {
  return a + b;
};

5. IIFE

IIFE (Immediately Invoked Function Expression) — это функция, которая выполняется, как только она определена.

(function() {
  console.log('IIFE executed');
})();

Параметры и аргументы функции

Параметр функции — это переменная, указанная в определении функции, а аргумент — это значение, передаваемое функции при ее вызове.

function greet(name) { // "name" is a parameter
  console.log(`Hello, ${name}!`);
}

greet('John'); // 'John' is an argument

Функции могут иметь несколько параметров и аргументов.

function add(a, b) {
  return a + b;
}

console.log(add(2, 3)); // 5

Возвращаемые значения функции

Функция может возвращать значение с помощью оператора return. Если функция не возвращает значение, она неявно возвращает undefined.

function add(a, b) {
  return a + b;
}

const result = add(2, 3);
console.log(result); // 5

Возможности функций

Переменные, объявленные внутри функции, доступны только в области действия функции.

function greet() {
  const message = 'Hello, world!';
  console.log(message);
}

greet(); // 'Hello, world!'
console.log(message); // ReferenceError: message is not defined

Функция подъема

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

greet(); // 'Hello, world!'

function greet() {
  console.log('Hello, world!');
}

Однако функциональные выражения и стрелочные функции не поднимаются и должны быть определены до их вызова.

greet(); // TypeError: greet is not a function

const greet = function() {
  console.log('Hello, world!');
};

Другие типы функций

Функция обратного вызова:

Функция обратного вызова - это функция, которая передается в качестве аргумента другой функции и вызывается этой функцией. Обычным вариантом использования функций обратного вызова является асинхронный код, где обратный вызов выполняется после завершения асинхронной операции. Вот пример:

function getUser(id, callback) {
  setTimeout(() => {
    const user = {
      id: id,
      name: 'John Doe'
    };
    callback(user);
  }, 2000);
}

getUser(123, (user) => {
  console.log(user); // Output: { id: 123, name: 'John Doe' }
});

Функция высшего порядка:

Функция высшего порядка — это функция, которая принимает одну или несколько функций в качестве аргументов или возвращает функцию в качестве результата. Обычный вариант использования функций более высокого порядка — это методы массива, такие как map, filter и reduce.

const numbers = [1, 2, 3, 4, 5];

const doubledNumbers = numbers.map((num) => {
  return num * 2;
});

console.log(doubledNumbers); // Output: [2, 4, 6, 8, 10]

Продвинутые функции

Завершающие функции

Замыкания - это мощная функция JavaScript, которая позволяет функции получать доступ к переменным из своей родительской области видимости даже после возврата родительской функции. Это может быть использовано для создания закрытых переменных и функций, которые недоступны извне функции.

function counter() {
  let count = 0;

  function increment() {
    count++;
    console.log(count);
  }

  return increment;
}

const myCounter = counter();
myCounter(); // Output: 1
myCounter(); // Output: 2

Каррирование

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

function add(a) {
  return function(b) {
    return a + b;
  }
}

const add2 = add(2);
console.log(add2(3)); // Output: 5

Мемоизация

Мемоизация — это метод, который позволяет функции кэшировать свои результаты на основе входных аргументов. Это может улучшить производительность функции, особенно если она выполняет сложные вычисления или поиск данных.

function fibonacci(n, memo = {}) {
  if (n in memo) return memo[n];
  if (n <= 1) return 1;
  memo[n] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo);
  return memo[n];
}

console.log(fibonacci(10)); // Output: 89

Теперь вы узнали немного о functions.

Когда разработчик пишет на JavaScript, он может совершить несколько грубых ошибок, при которых не будет корректно работать код. Если вы хотите их избежать приглашаем вас посетить страницы 8 основных ошибок JavaScript, которые допускают разработчики.

Также для начинающих мы можем предложить несколько советов для улучшения вашей практики написания кода, сделать его более понятным и читабельным.

#JavaScript #Начинающим
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу