当前位置: 首页 > 知识库问答 >
问题:

在ES6箭头函数中什么时候应该使用return语句

公良育
2023-03-14

新的ES6箭头函数表示return在某些情况下是隐式的:

表达式也是该函数的隐式返回值。

在什么情况下,我需要将return与ES6箭头函数一起使用?

共有2个答案

印劲
2023-03-14

我明白这个经验法则...

对于有效转换(参数的一行操作)的函数,return是隐式的。

候选人是:

// square-root 
value => Math.sqrt(value)

// sum
(a,b) => a+b

对于其他操作(不止需要块的一行式操作,return必须是显式的

贺英悟
2023-03-14

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