LoginSignup
7
7

More than 5 years have passed since last update.

ES6のarrow functionの引数の括弧は省略しないほうがいいかもしれない

Posted at

ES6のarrow functionは高階関数をシンプルに書けて便利ですが、引数の個数が1個以外のときは、引数の括弧が省略できません。統一感を出すために、arrow functionの引数は必ず括弧で囲むようにした方がいいかもしれません…。

引数が1つの場合

const list = [1, 2, 3];

// functionを使った書き方
list.map(function(a) { 
  return a * 2;
});

// arrow function
list.map((a) => { 
  return a * 2;
});

// arrow function(括弧を省略)
list.map(a => { 
  return a * 2;
});

// arrow function(ブレースとリターンを省略)
list.map((a) => a * 1);

// arrow function(括弧とブレースとリターンを省略)
list.map(a => a * 1);

引数が2つ以上の場合

const list = [1, 2, 3];

// functionを使った書き方
list.reduce(function(acc, num) {
  return acc + num;
});

// arrow function
list.reduce((acc, num) => {
  return acc + num;
});

list.reduce((acc, num) => acc + num);

// 括弧は省略できない。省略するとaccがreduceの第一引数になってしまう。
list.reduce(acc, num => acc + num);

引数が0個の場合

// functionを使った書き方
setTimeout(function(){
  console.log("done");
}, 10);

// arrow function
setTimeout(() => {
  console.log("done");
}, 10);

// 暗黙的にreturn console.log("done")と解釈されるので注意
setTimeout(() => console.log("done"), 10);

// 括弧は省略できない。syntax error
setTimeout(=> console.log("done"), 10);
7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7