Когда вы используете фигурные скобки (цветочные скобки), он определяет тело функции - так что вы можете поместить в них несколько разделенных точкой с запятой операторов. Если вы хотите вернуть значение из функции, вы должны явно использовать оператор return
.
Если вы используете скобки, вы будете возвращать значение выражения внутри скобок, и может быть только одно выражение (без точки с запятой). Если вы хотите сделать несколько вещей с круглыми скобками, вы можете использовать оператор запятой:
const doTwoThings = () => (console.log("Hello"), console.log("Goodbye"));
console.log(doTwoThings());
Здесь вы регистрируете Hello
, затем Goodbye
, затем записываете возвращаемое значение функции - undefined
.
Вы можете сделать то же самое внутри фигурных скобок, и вы не увидите никакой видимой разницы:
const doTwoThings = () => {console.log("Hello"), console.log("Goodbye")};
console.log(doTwoThings());
Опять вы регистрируете Hello
и Goodbye
на консоли, затем вы записываете возвращаемое значение функции - однако для использования {}
необходимо иметь явное ключевое слово return
, так что это undefined
потому что мы ничего не возвращаем из функции.
Также обратите внимание, что иногда вы видите обе фигурные скобки и фигурные скобки:
const aFunction = () => ({ foo: "bar" });
console.log(aFunction());
Есть хорошее объяснение здесь , но в основном, когда у вас есть функция, возвращающая объект, фигурные скобки {}
обозначают объект, а скобки обеспечивают неявный возврат содержащегося выражения - объекта , Итак, объект создан, затем выражение вычисляется и возвращается.