回答編集履歴
1
冒頭に結論を追加
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
|
+
即時実行関数を書きたい場合はほぼ全ての現場が丸括弧で包むというやり方でやっています。
|