JavaScript | Стрелочная функция без параметров — efim360.ru

JavaScript | Стрелочная функция без параметров

Есть массив:

var massiv = [1, 2, 3]

Мы хотим преобразовать все элементы массива при помощи метода map() и стрелочной функции без параметров. Мы хотим просто возвращать строку "rrr" на каждом вызове стрелочной функции.

Стрелочная функция без параметров будет выглядеть так:

()=>"rrr"

Выражение с массивом и методом будет выглядеть так:

massiv.map(()=>"rrr")

Мы не передаём в функцию никаких параметров.

Стрелочная функция без параметров возвращает строку - JavaScript
Стрелочная функция без параметров возвращает строку - JavaScript

 

Это похоже на вызов метода заливки fill()

Немного про нашу стрелочную функцию без параметров

Стрелочные функции состоят из трёх элементов:

  • Первым элементом идут Параметры Стрелки (ArrowParameters)
  • Вторым элементом является сама стрелка - =>
  • Третьим элементом является Лаконичное Тело (ConciseBody)

Объявление стрелочной функции начинается с Параметров Стрелки (ArrowParameters), которые можно разделить на две составляющие:

  • объявление начинается с Идентификатора Привязки (BindingIdentifier)
  • объявление начинается с Обложки Списка Параметров Выражений и Стрелок в Скобках (CoverParenthesizedExpressionAndArrowParameterList)

Мы выбрали второй вариант определения Параметров Стрелки (ArrowParameters) т. к. у нас нет Идентификатора Привязки.

Обложка Списка Параметров Выражений и Стрелок в Скобках (CoverParenthesizedExpressionAndArrowParameterList) имеет 7 вариантов написания:

  • ( Expression[+In, ?Yield, ?Await] )
  • ( Expression[+In, ?Yield, ?Await] , )
  • ( )
  • ( ... BindingIdentifier[?Yield, ?Await] )
  • ( ... BindingPattern[?Yield, ?Await] )
  • ( Expression[+In, ?Yield, ?Await] , ... BindingIdentifier[?Yield, ?Await] )
  • ( Expression[+In, ?Yield, ?Await] , ... BindingPattern[?Yield, ?Await] )

Мы выбрали третий вариант написания Обложки - ()

CoverParenthesizedExpressionAndArrowParameterList - ECMAScript
CoverParenthesizedExpressionAndArrowParameterList - ECMAScript

Потом мы записали саму стрелку =>

ArrowFunction - ECMAScript
ArrowFunction - ECMAScript

Затем в Лаконичное Тело (ConciseBody) мы поместили строку "rrr". Мы не использовали стандартных фигурных скобок {} как для Функционального Тела (FunctionBody), а воспользовались "свободным" написанием Выражения Тела (ExpressionBody) без фигурных скобок. В нашем случае "rrr" является результатом выполнения стрелочной функции без параметров.

ConciseBody - ECMAScript
ConciseBody - ECMAScript

 

То же самое с использованием оператора function

Этот пример можно записать так:

massiv.map(function(){return "rrr"})

Обычная анонимная функция в этом случае выглядит так:

function(){return "rrr"}

Пример вызова выражения:

Стрелочная и обычная функции без параметров решают одну задачу - JavaScript
Стрелочная и обычная функции без параметров решают одну задачу - JavaScript

 

Информационные ссылки

JavaScript | Функции (Function)

Оператор return

Стандарт ECMAScript - Раздел "15.3 Arrow Function Definitions" - https://tc39.es/ecma262/#sec-arrow-function-definitions

Поделись записью