Подтвердить что ты не робот

Кудрявые скобки в стрелочных функциях

Может кто-то, пожалуйста, объясните следующее:

Я слежу за лекциями Дана Абрамова и выполняю упражнения.

Код работает нормально, однако тесты не выполняются, когда следующая конкретная функция написана в фигурных скобках **{ }**.

    case 'toggleTodo' :
        return (
            state.map( (one) => {
                oneTodo( one, action )
            })
        );

Тот же код отлично работает без фигурных скобок.

    case 'toggleTodo' :
        return (
            state.map( (one) => 
                oneTodo( one, action )
            )
        );

Вот JsBin. Пожалуйста, обратитесь к строке 31 и далее.

4b9b3361

Ответ 1

case 'toggleTodo' :
    return (
        state.map( (one) => 
            oneTodo( one, action )
        )
    );

равно:

case 'toggleTodo' :
    return (
        state.map( (one) => {
            return oneTodo( one, action )
        })
    );

см. оператор return

Ответ 2

Пара брекетов образует блок, содержащий список операторов. Вы должны явно использовать оператор return, чтобы функция возвращала что-то.

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