新的ES6箭头函数表示return
在某些情况下是隐式的:
表达式也是该函数的隐式返回值。
在什么情况下,我需要将return
与ES6箭头函数一起使用?
我明白这个经验法则...
对于有效转换(参数的一行操作)的函数,return是隐式的。
候选人是:
// square-root
value => Math.sqrt(value)
// sum
(a,b) => a+b
对于其他操作(不止需要块的一行式操作,return必须是显式的
jackson在一个类似的问题中部分地回答了这一点:
隐式返回,但前提是没有块。
返回
时,这将导致错误。(name)=>{id:name}
返回对象{id:name}
...对吧?错了。它返回undefined
。那些大括号是一个明确的块。ID:
是一个标签。我还要加上块的定义:
一个块语句(或其他语言中的复合语句)用于对零个或多个语句进行分组。该块由一对花括号分隔。
示例:
// returns: undefined
// explanation: an empty block with an implicit return
((name) => {})()
// returns: 'Hi Jess'
// explanation: no block means implicit return
((name) => 'Hi ' + name)('Jess')
// returns: undefined
// explanation: explicit return required inside block, but is missing.
((name) => {'Hi ' + name})('Jess')
// returns: 'Hi Jess'
// explanation: explicit return in block exists
((name) => {return 'Hi ' + name})('Jess')
// returns: undefined
// explanation: a block containing a single label. No explicit return.
// more: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label
((name) => {id: name})('Jess')
// returns: {id: 'Jess'}
// explanation: implicit return of expression ( ) which evaluates to an object
((name) => ({id: name}))('Jess')
// returns: {id: 'Jess'}
// explanation: explicit return inside block returns object
((name) => {return {id: name}})('Jess')
通过和,我们将获得两种非常相似的在ES6中编写函数的方法。在其他语言中,lambda函数通常以匿名的方式区别于其他语言,但在ECMAScript中,任何函数都可以是匿名的。这两种类型都有独特的使用域(即当需要显式绑定或显式不绑定时)。在这两个领域之间,有很多情况下,任何一种表示法都可以。 ES6中的箭头函数至少有两个限制: null null
问题内容: 新的es6箭头功能说在某些情况下是隐式的: 该表达式也是该函数的隐式返回值。 在什么情况下需要使用es6箭头功能? 问题答案: 隐式返回,但仅当没有块时才返回。 * 当单线扩展到多行并且程序员忘记添加时,这将导致错误。 * 隐式返回在语法上是模棱两可的。返回对象…对吗?错误。它返回。这些括号是一个明确的块。是一个标签。 我会在此添加一个块的定义: 块语句(或其他语言的复合语句)用于将零
本文向大家介绍在React中什么时候使用箭头函数更方便呢?相关面试题,主要包含被问及在React中什么时候使用箭头函数更方便呢?时的应答技巧和注意事项,需要的朋友参考一下 We can use it in class components, so we don't need to bind the again, we can use this inside arrow function trans
本文向大家介绍使用箭头函数应该需要注意什么?相关面试题,主要包含被问及使用箭头函数应该需要注意什么?时的应答技巧和注意事项,需要的朋友参考一下
新的“胖箭头”符号还可以用更简单的方式来定义匿名函数。 请看下面的例子: console.log(x); incrementedItems.push(x+1); }); 计算一个表达式并返回值的函数可以被定义更简单: 下面代码与上面几乎等价: incrementedItems = items.map(function (x) { return x+1; 让我们在 验
问题内容: 我知道他们两个都禁用了Nagle的算法。 我什么时候应该/不应该使用它们中的每一个? 问题答案: 首先,不是所有人都禁用Nagle的算法。 Nagle的算法用于减少有线中更多的小型网络数据包。该算法是:如果数据小于限制(通常是MSS),请等待直到收到先前发送的数据包的ACK,同时累积用户的数据。然后发送累积的数据。 这将对telnet等应用程序有所帮助。但是,在发送流数据时,等待A