JavaScriptのアロー関数
なんかいろいろ書き方があるMijinko_SD.icon
https://code2svg.vercel.app/svg/https://scrapbox.io/api/code/villagepump/JavaScriptのアロー関数/arrows.js#.svg
code:arrows.js
() => {console.log("");} // 引数なし
引数が無いアロー関数
最初の()は省略不可能
code:arrows.js
(e) => {console.log(e);} // 引数あり
引数(e)があるアロー関数
例) (e, f, g)
code:arrows.js
e => {console.log(e);} // 上と全く同じ(()を省略しただけ)
引数が1つしかない場合限定で()を省略できる
deno fmtが()を必ず付けてくるので、時間がないときにスクボで適当に書いたコード以外は()を略さないようにしているtakker.icon コードゴルフ(もどき)をしていると、引数なしより引数1つのほうが文字数が少ないのでそっちを採用することがある綾坂こと.icon ()=>{……}よりu=>{……}のほうが1文字少ない
このあたりはminifier2に任せているtakker.icon
code:arrows.js
() => true; // trueを返す
右側を中括弧{}で囲まなければ、右側に書いた値や計算式自体が戻り値になる
中括弧で囲んでいて、かつreturnを書いていない場合は値を返さない 上記の上から3つまでが該当する
これつまり、アロー関数式の構文に式を取るものと文を取るものがあるな?綾坂こと.icon
右側に式をいれる : [async ]() => 式, [async ]引数 => 式, [async ](引数1[, 引数2[, ……, 引数N]]) => 式
右側に文をいれる[async ]() => {文}, [async ]引数 => {文}, [async ](引数1[, 引数2[, ……, 引数N]]) => {文}
{}があれば文、なければ式として解釈してる
returnなしでオブジェクトを返そうとして、できないのをたまにやるinajob.icon
オブジェクト生成とブロックが同じ中括弧なのが問題
毎回()=>{return{foo:bar}}って書いてるMijinko_SD.icon
もっといい方法ないのかな
takker.icon
code:arrows.js
() => ({ foo: bar });
なるほど!次からこうしようinajob.icon
ま じ か よ Mijinko_SD.icon
この書き方出来るのか、知らなかった
+1Summer498.icon
自分もだれかのコードを読んで初めて知りましたtakker.icon
ブロックと解釈されないように()で囲うのはこれ以外でも使う気がする綾坂こと.icon
具体例が出てこないけど
code:arrows.js
() => {return true;} // trueを返す
右側を中括弧で囲むと、普通の関数と同じように中に命令文を書けるようになる
ちゃんと整形して書くと以下のようになる
code:arrow_formatted.js
() => {
return true;
}
もちろん、複数行で書くことも出来る
code:arrow2.js
() => {
console.log("真でも喰らえ!!!!!");
return true;
}