🔖

JavaScriptのアロー関数の省略記法について

に公開4

Discussion

NakamuraNakamura

アロー関数式は私のようにfunctionreturnを書くのが面倒な人のためにあるのだと思っています。

記事を拝見して気になったのですが、アロー関数式の右辺に()は必要ないかと思います。

const test = msg => alert( msg );

これでOKです。

右辺は式になっているのですが、右辺をオブジェクトにしたいときに、オブジェクトの{}とブロックの{}の区別がつかないため、()を使ってオブジェクトであることを明示できます。

const test = x => { x }; // オブジェクトの{}にしたいのにブロックの{}と解釈されてしまう
const test = x => ({ x }); // ()で囲ってオブジェクトであることを明示する

あるいは、複数行のときは()を使ったほうが良いとされていますね。私は必要ない限り省略していますが、人ぞれぞれじゃないかと。React公式のJSXの説明にも次のように書かれています。

読みやすさのため JSX を複数行に分けています。必須ではありませんが、複数行に分割する場合には、自動セミコロン挿入の落とし穴にはまらないように括弧で囲むことをおすすめします

しゅうしゅう

記事を拝見して気になったのですが、アロー関数式の右辺に()は必要ないかと思います。

もちろんその通りですが、この記事はアロー関数についてよくわからない人のためにあります。
そしてグループ化演算子の説明の伏線となっています。
JavaScriptはカッコだらけになりがちであり、かつ省略し過ぎでもあります。

なので敢えて前段を受けて省略しない形で書いています。
自分の学習メモ用ですので詳しい解説についてはご自身の記事でまとめて頂ければと存じます。

NakamuraNakamura

これは大変失礼いたしました。
誤った知識になっていないか心配になったものでして。。
今後も学習が進むことを祈っております。

しゅうしゅう

正解だけを書くのが学習ではありません。
間違う自由というのもあるでしょうし、学習の過程において理解は変質するものです。
むしろこれが正解だとされるものの元ネタが分からずにモヤモヤすることが多々あり、それらを自分なりにまとめることを目的としています。
理解の解像度が変われば過去記事を編集することもあります。