Функция — это рецепт, который позволяет вам группировать множество повторяющихся задач, чтобы вы могли вызывать их снова и снова. JavaScript позволяет создавать функции разными способами; конечно, JavaScript — это функциональный язык программирования. Итак, вот 4 способа сделать функцию в JS:
(Дайте мне знать, если я что-то пропустил)
1. Ключевое слово функции
Создайте функцию, используя ключевое слово function, за которым следует имя функции в скобках:
function sayHello(name) { // Do something }
Эта функция может быть вызвана sayHello("Tamal");
. Она также имеет доступ к объектам globalthis
и arguments
.
2. Анонимная функция
Вы можете удалить часть sayHello, но теперь это анонимная функция.
function() { // Do something }
Это в основном используется, когда вы передаете функцию в качестве параметра другой функции.
setTimeout(function() { // Do something }, 1000)
Но вы можете назначить эту функцию переменной следующим образом:
var sayHello = function() { // Do something }
Тогда вы можете назвать это просто sayHello()
Одно предостережение для использования этого подхода заключается в том, что вы можете использовать функцию только после того, как вы ее объявили.
sayHello() // ERROR! doesn't work, because it's not declared yet var sayHello = function() { // Do something }
Для обычных функций вы можете использовать их еще до того, как объявили их.
sayHello() // Works like a charm! function sayHello() { // Do something }
3. Стрелочные функции (лямбда)
Создайте функцию, не используя ключевое слово function, но вы должны использовать символ толстой стрелки =>
.
() => { // Do something }
Это компактный способ создания анонимных функций, вы даже можете написать в одну строку: () => // Do something
Назначьте его переменной, чтобы вы могли вызывать его из другого места:
var sayHello = (name) => // Do something
Одним из недостатков использования стрелочной функции является то, что у вас нет доступа к глобальному объекту this
и свойству arguments
(массив параметров) функции.
4. Выражение немедленно вызываемой функции
Функция, которая запускается немедленно, и у вас больше не будет доступа к ней. Это выглядит так:
(function(){ // Do something })()
Тело функции находится внутри набора круглых скобок, а после него есть еще один набор круглых скобок для его выполнения. Вы поместите любые параметры во второй набор скобок.
(function(name){ // Do something })(“Tamal”)
Бонус: 5. Методы также являются функциями
Вы можете поместить функцию внутрь объекта, они называются методами. Функция внутри объекта может выглядеть так:
var person = { sayName: function() { // Do something } }
Вы также можете определить метод с таким аккуратным синтаксисом:
var person = { sayName() { // Do something } }
Какой из них использовать и почему?
Когда я впервые начал и узнал о функции стрелки, я использовал их при каждом удобном случае. Постепенно я узнал обо всех многочисленных применениях и теперь экономно использую их все в своих программах.
Сейчас я в основном использую ключевое слово функция, чтобы сделать мой код более читабельным. Для однострочных или небольших функций-заполнителей я использую синтаксис стрелочной функции, как в этом примере:
fetch(url) .then(// Do something) .catch(err => console.log(err))
Я использую анонимные функции вместо стрелочных, когда хочу сделать свой код более читабельным.
Я не использую ключевое слово var
для создания функций (назначая анонимную функцию переменной), потому что хочу, чтобы мои функции были гибкими.
Наконец, я не могу использовать немедленно вызываемую функцию, потому что я не использую ни один из шаблонов проектирования, в которых она используется.
Что бы вы ни использовали, полностью зависит от вас, но убедитесь, что вы соответствуете своему коду.
Если вы в Nodejs, вы можете проверить мои другие сообщения: