Функции - это один из основных строительных блоков JavaScript. Функция - это набор операторов, выполняющих задачу. Он будет принимать данные в качестве входных данных, обрабатывать их и возвращать результат в качестве выходных данных.
Объявления функций
Он также называется оператором функции и определением функции. Это самый простой способ определения функции. Функция JavaScript состоит из function
ключевого слова, за которым следует имя функции, список параметров в ( )
и набор инструкций в {...}
function sayHello() {
console.log("Hello World!");
}
sayHello();
Функция может иметь некоторые параметры, которые можно использовать внутри функции для вычислений. Мы можем передавать значения параметрам в качестве аргументов при вызове функции.
Важно понимать разницу между параметрами и аргументами. Многие люди используют его как синонимы, но они действительно разные. Параметр - это переменная, используемая для определения определенного значения во время определения функции. Аргументы функции - это реальные значения, переданные функции при ее вызове. Параметры инициализируются значениями предоставленных аргументов.
function sayHello(name) {
console.log("Hello ", name );
}
sayHello("John");
Здесь name
- параметр функции sayHello()
, а “John”
- аргумент, переданный этой функции.
Анонимные функции
Анонимная функция - это функция без имени.
function (){
alert("Hello World!");
};
Но мы не можем использовать это так. Чтобы вызвать и запустить анонимную функцию, мы должны присвоить ее переменной или передать в качестве аргумента другой функции.
var sayHello = function() {
console.log('Hello World');
}
sayHello()
Приведенный выше код является примером вызова анонимной функции переменной. Этот тип объявления также называется функциональным выражением. Подробнее об этом мы поговорим позже.
Теперь давайте посмотрим, как использовать анонимную функцию в качестве аргумента.
setTimeout(function () {
console.log(‘Hello World’)
}, 1000);
В этом примере мы передаем анонимную функцию в функцию setTimeout()
. Функция setTimeout()
выполняет эту анонимную функцию на секунду позже.
IIFE (выражения немедленного вызова функций)
Если вы хотите вызвать анонимную функцию и выполнить ее сразу после ее объявления, мы можем использовать выражения функции с немедленным вызовом. Давайте посмотрим на примере, чтобы понять, как мы можем это сделать.
(function () {
console.log("Hello World");
})()
Это может показаться запутанным, поэтому давайте разберемся с ним.
Во-первых, следующее определяет анонимную функцию
(function () {
console.log('Hello World');
})
Во-вторых, завершающие круглые скобки ( )
позволяют вызывать функцию:
(function () {
console.log('Hello World' );
})();
Если вы хотите передать аргументы, вы можете сделать это следующим образом.
let person = { firstName: ‘John’, lastName: ‘Doe’ }; (function () { console.log(Hello `${person.firstName} ${person.lastName}`); })(person);
Функциональные выражения
Это позволяет нам определять функцию с помощью выражения. Назначив переменную функции. Итак, здесь функция действует как значение переменной. Это также называется именованной функцией (потому что у нее есть имя) и выражением анонимной функции (поскольку мы назначаем анонимную функцию переменной).
var sayHello = function() {
console.log('Hello World');
}
sayHello()
Выражения именованных функций
Когда мы назначаем переменную именованной функции, она называется выражением именованной функции.
var showMessage = function sayHello() { console.log('Hello World'); }
showMessage
()
В приведенном выше примере мы видим, что функция получила имя sayHello()
, но мы не можем вызвать ее sayHello()
, потому что она не создана в глобальной области. Таким образом, мы можем получить к нему доступ, только позвонив showMessage()
Функция стрелки
Стрелочные функции - это современный способ определения функций. Не требует использования function
keyword. Короче говоря, это более короткий способ определения функциональных выражений.
let square = (number) => { return number * number }
sayHello(5);
Мы можем сделать его короче, опуская return
keyword
let square = (number) => number * number
sayHello(5);
Функция генератора
Функция генератора - это особый тип функции, которая может остановиться на полпути, а затем продолжить с того места, где она остановилась. Другими словами, вы можете приостановить их выполнение, выполнить другую задачу, а затем вернуться и продолжить с того места, где вы ушли.
Объявление функции генератора немного отличается от обычной функции. Здесь мы ставим символ *
после function
ключевого слова.
Функция генератора возвращает объект, а для этого объекта мы можем использовать метод next ()
, который вернет объект, который несет 2 важных свойства, таких как value
и done
. Среди них value
содержит фактическое значение, а done
указывает, завершено ли выполнение функции генератора или нет.
А теперь давайте посмотрим на пример.
function* generator() { yield 1; yield 2; yield 3; } const gen = generator(); console.log(gen.next().value); // 1 console.log(generator().next().value); // 2 console.log(generator().next().value); // 3
Как вы можете видеть, здесь мы используем ключевое слово yield
, которое используется для приостановки и возобновления работы генератора. Мы не можем использовать ключевое слово return
, так как оно завершит выполнение.
Надеюсь, вы нашли эту статью полезной и узнали что-то новое. Если у вас есть вопросы, оставьте их в разделе комментариев.
Не стесняйтесь обращаться ко мне по адресу [email protected].