箭头功能中的卷曲括号

Kay*_*ote 16 javascript brackets curly-braces ecmascript-6 arrow-functions

有人请解释以下内容:

我跟随丹阿布拉莫夫的讲座和做练习.

代码工作正常,但是当使用大括号编写以下特定函数时,测试失败**{ }**.

    case 'toggleTodo' :
        return (
            state.map( (one) => {
                oneTodo( one, action )
            })
        );
Run Code Online (Sandbox Code Playgroud)

相同的代码工作正常,没有花括号.

    case 'toggleTodo' :
        return (
            state.map( (one) => 
                oneTodo( one, action )
            )
        );
Run Code Online (Sandbox Code Playgroud)

这是JsBin.请参阅第31行.

Ber*_*rgi 18

这对括号形成一个,包含一个语句列表.您需要return显式使用语句以使函数返回某些内容.

如果省略大括号,则箭头函数具有简洁的主体,该主体仅由单个表达式组成,其结果将隐式成为函数的返回值.

  • 感谢@Bergi 的解释,现在理解上面的 madox2 代码。 (2认同)

mad*_*ox2 13

case 'toggleTodo' :
    return (
        state.map( (one) => 
            oneTodo( one, action )
        )
    );
Run Code Online (Sandbox Code Playgroud)

等于:

case 'toggleTodo' :
    return (
        state.map( (one) => {
            return oneTodo( one, action )
        })
    );
Run Code Online (Sandbox Code Playgroud)

看到退货声明