回答編集履歴

1

冒頭に結論を追加

2023/02/21 03:39

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -1,10 +1,18 @@
1
1
  質問文の該当のソースコード全体は「即時実行関数」や「即時関数」ですが、
2
2
  これはJavaScript(以下JS)の仕様を組み合わせた「テクニック」の話になります。
3
+
4
+ なのでこれらを覚えて帰ってください
5
+
6
+ - [関数宣言](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/function)
7
+ - [関数式](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/function)
8
+ - [グループ化演算子](https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Expressions_and_Operators#%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E5%8C%96%E6%BC%94%E7%AE%97%E5%AD%90)
9
+
10
+ これらがどう関わってくるのかを順に解説していきます。
3
11
 
4
12
  ---
5
13
 
6
14
  そもそも丸括弧`()`なんかで囲わずに
7
- そのまま`async () => {関数の中身}()`って書けば良いじゃんって話だよね
15
+ そのまま`async () => {関数の中身}()`って書けば良いじゃん。
8
16
  **しかしそれは出来ません。**
9
17
 
10
18
  JSではブロック文`{}`が終わる時、
@@ -18,7 +26,7 @@
18
26
  ---
19
27
 
20
28
  でも実際には似たような事は実現できてるじゃん。
21
- 「関数式」なら出来ますよ。
29
+ 「関数宣言」は駄目だけど「関数式」なら出来ますよ。
22
30
 
23
31
  JSには[関数宣言](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/function)と[関数式](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/function)が存在します。
24
32
 
@@ -62,5 +70,5 @@
62
70
  `!`はbooleanに勝手に型変換されますし
63
71
  `+`や`-`は数値に勝手に型変換されます。
64
72
 
65
- その辺邪魔しないグループ化演算子が良い子で使いやすいから一番無難な選択肢ということ
73
+ その辺邪魔しないグループ化演算子が良い子で使いやすいですね。
66
- ほぼ全ての現場で即時実行関数を書きたい場合は丸括弧で包むというやり方でやっています。
74
+ 即時実行関数を書きたい場合はほぼ全ての現場が丸括弧で包むというやり方でやっています。