1. ホーム
  2. javascript

[解決済み] ES6 矢印関数で return 文を使用するのはどのような場合か

2022-04-13 11:59:40

質問事項

新しい ES6 矢印関数 言う return は、状況によっては暗黙の了解となる。

この式は、その関数の暗黙の戻り値でもある。

どのような場合に return をES6矢印関数で使用することはできますか?

どのように解決するのですか?

ジャクソンが一部 回答はこちら という質問をしています。

暗黙の戻り値、ただしブロックがない場合のみ。

  • これは、ワンライナーが複数行に拡張されたときに、プログラマーが return .
  • 暗黙の帰路は構文的に曖昧である。 (name) => {id: name} はオブジェクトを返します。 {id: name} ...ですよね?違うね。返ってくるのは undefined . これらの中括弧は明示的なブロックです。 id: はラベルです。

の定義をこれに加える。 ブロック :

ブロック文(他の言語では複合文)は、0個以上の文をグループ化するために使用されます。ブロックは2つの中括弧で区切られます。

:

// 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')