【发布时间】:2017-12-08 11:35:13
【问题描述】:
下面的代码可以写成一行吗(不带return关键字)?
elements.map(element => {
return {...element, selected: false};
})
【问题讨论】:
-
FWIW:
...不是运算符(它不可能;运算符只有一个结果值),在上面的上下文中,...是 spread 语法,而不是 rest 语法。 -
你对休息与传播的看法是对的。但是您确定“操作员”吗?他们在 MDN(参见 URL 的最后一部分)developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 和 Microsoft Docs 中使用该名称:docs.microsoft.com/en-us/scripting/javascript/reference/…
-
是的,非常确定。 :-) 你不会在the spec 或the proposal 中看到它被称为运算符。 (再次重申:它不能是运算符,它没有单个结果值,也不能在所有表达式上下文中使用)。请记住,MDN 是社区编辑的。这非常好,但每隔一段时间就会有人引入错误。不幸的是,该页面的原作者确实在标题中包含了“操作员”。这篇文章很久以前就修复了,但遗憾的是 URL 仍然存在。不能给你一个 MS 弄错的理由。 :-)
标签: javascript typescript arrow-functions ecmascript-next