• ベストアンサー

( ) の役目は?

下記のようなコードを見つけました。 points.map(([x, y]) => ([ grid.x + grid.k * x, ← これをaとする grid.y + grid.k * y ← これをbとする ])); 上記を簡単な表示になおすと下記になります points.map(([x, y]) => ([a,b])); カッコがいっぱいあります。 一番外側はmapの引数のカッコ points.map() ([x, y]) はアロー関数の引数のカッコ では([a,b])の ( ) は何の役目なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.1

ご質問の内容であれば、=>の右側の([a,b])の( )はあってもなくても意味は同じです。書いた人の気分の問題。 ただし、アロー関数の右側の式に( )をつける必要がある場合もあります。{ }で囲んだオブジェクトリテラルを返す場合です。これと同様に[a,b]にも( )をつけたくなったのかもしれません。 (param1, param2) => ({ x:7 }) これは( )なしだと下記の構文と紛らわしいからです。 (param1, param2) => { statements }

takahasi5634
質問者

補足

回答ありがとうございます。疑問なのですが{ statements }の場合下記はなぜエラーとならないのでしょうか? x:7 xに7を設定しているのかと思い下記のようにしたらx is not definedとなります。 console.log(x) x:7 は javascript側で何をしていると解釈されているのでしょうか?

その他の回答 (1)

  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.2

>x:7 は javascript側で何をしていると解釈されているのでしょうか? この場合x:7だけではダメです。{ }をつけることによってオブジェクトリテラルを表しています。 たとえば下記のコードを試してみてください。 var obj = { x:111, y:222 }; console.log(obj.y);

takahasi5634
質問者

補足

ありがとうございました。

関連するQ&A