有人请解释以下内容:
我跟随丹阿布拉莫夫的讲座和做练习.
代码工作正常,但是当使用大括号编写以下特定函数时,测试失败**{ }**.
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行.
javascript brackets curly-braces ecmascript-6 arrow-functions
我有一个箭头函数,看起来像这样(简化):
const f = arg => { arg.toUpperCase(); };
Run Code Online (Sandbox Code Playgroud)
但是当我打电话给它时,我得到undefined:
console.log(f("testing")); // undefined
Run Code Online (Sandbox Code Playgroud)
为什么?
例:
const f = arg => { arg.toUpperCase(); };
console.log(f("testing"));Run Code Online (Sandbox Code Playgroud)
(注意:对于上面箭头函数的特定问题,这是一个干净的,规范的dupetarget .)
在箭头函数中返回值与添加正文并键入 return 之间有什么区别吗?
据我所知,它们是一样的。
这是一个会话:
let a = () => 1;
a()
1
let b = () => { return 1; }
b()
1
a
() => 1
b
() => { return 1; }
Run Code Online (Sandbox Code Playgroud)
当这些不同时有什么情况吗?