Стрелочные функции были представлены в 2015 году с обновлениями, представленными в ECMAScript 2015 или ES6. Они были добавлены для очистки синтаксиса выражений функций.

Выполнение

Вот как реализовать стрелочные функции:

Довольно понятно. Несколько вещей, которые следует учитывать при написании функциональных выражений в виде стрелочных функций:

- Стрелочные функции не имеют значения для «это», «новая цель» или «супер». Когда они вызываются в стрелочной функции, их значение берется из окружающего контекста, в котором вызывается функция.

-Стрелочные функции также не принимают объекты-аргументы, и поэтому «аргументы» также ничего не дают.

В связи с этим у меня есть правило, которому вы должны следовать.

Объявление выражения регулярной функции лучше всего использовать в синтаксисе «Object.function()», потому что именно тогда вышеупомянутые вызовы («this», «super» и т. д.) будут иметь значения, связанные с этим объектом. В противном случае используйте функцию стрелки. Это весело ;0)

Еще одна вещь, которую следует помнить, это то, что при использовании стрелочной функции требуется явный оператор «return» при использовании тела блока:

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

История

До Javascript функциональные выражения не были распространены в существующих языках. В C#, C++, Java и Python не было того, что мы знаем из Javascript в виде функциональных выражений (или анонимных функций). Единственным исключением является Lisp (созданный в 1958 году!), в котором использовались так называемые «лямбда-функции», которые по существу аналогичны функциональным выражениям.

Из-за того, что Javascript стал очень популярным языком, эти языки (C#, Java и т. д.) теперь адаптированы для включения «лямбда-функций». Большинство новых создаваемых языков также имеют уже встроенные функциональные выражения.

Несмотря на распространение этой инновационной функции в мире программирования, обычный синтаксис функций Javascript сравнительно более многословен.

Когда вы вызываете много-много функциональных выражений, это складывается. Это одна из причин, по которой ES6 определил синтаксис стрелочной функции. Кроме того, люди, вероятно, устали от слишком частого написания слова «functino» или «funion».

Более глубокая история

Это математик и логик Алонзо Черч. Он и Алан Тьюринг независимо друг от друга создали различные математические модели для ранних вычислений.

Модель Тьюринга была известна как а-модель, а затем ее обычно называли машиной Тьюринга. Черч создал что-то под названием «лямбда-исчисление», которое стало основой его модели, которая считается одним из первых языков программирования, но не предназначалась для этого. Он создал это исчисление, чтобы доказать что-то о вычислениях в целом. Я не знаю никаких подробностей о том, как это работает. Я знаю, что Черч обнаружил, что в его модели ему нужно только одно: функции. Довольно дикий.

Работа Черча вдохновила создателей Лиспа, и именно поэтому функциональные выражения Лиспа известны как «лямбда-функции». Это продолжается до анонимных функций в Javascript и большинстве современных языков программирования.

Вывод

Стрелочные функции — прекрасный способ очистить ваши выражения функций в Javascript после 2015 года. Их удобство компенсируется некоторыми функциональными отличиями от регулярных функциональных выражений. Если у вас возникли проблемы с использованием стрелочных функций в коде, воспользуйтесь приведенными ниже ресурсами для получения более подробных спецификаций использования. А еще развлекайтесь ;)

Ресурсы: