回答編集履歴
3
説明がおかしい点を訂正
test
CHANGED
@@ -32,19 +32,23 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
のような文法です。
|
35
|
+
のような文法です。例えば
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
+
```js
|
40
|
+
|
41
|
+
関数 `固定部1${式1}固定部2${式2}固定部3${式3}固定部4`
|
42
|
+
|
43
|
+
```
|
44
|
+
|
39
|
-
テンプレートリテラルの中の固定部分と埋め込まれた式を評価した結果が
|
45
|
+
のように記述するとテンプレートリテラルの中の固定部分と埋め込まれた式を評価した結果が
|
40
46
|
|
41
47
|
|
42
48
|
|
49
|
+
['固定部1', '固定部2', '固定部3', '固定部4']
|
43
50
|
|
44
|
-
|
45
|
-
['A', 'B', 'C', '...']
|
46
|
-
|
47
|
-
[
|
51
|
+
[式1の評価結果, 式2の評価結果, 式3の評価結果]
|
48
52
|
|
49
53
|
|
50
54
|
|
@@ -52,7 +56,7 @@
|
|
52
56
|
|
53
57
|
|
54
58
|
|
55
|
-
ただテンプレートリテラルの中の固定部分(文字列の配列)は第一引数に渡されるけれど、テンプレートリテラルに埋め込まれた各式の結果は第二引数へ配列として渡されるのではなく最初の式が第二引数、次の式が第三引数、・・・のように可変個の引数として渡される仕様のようです。
|
59
|
+
ただテンプレートリテラルの中の固定部分(文字列の配列)は第一引数に渡されるけれど、テンプレートリテラルに埋め込まれた各式の結果は第二引数へ配列として渡されるのではなく最初の式の評価結果が第二引数、次の式の評価結果が第三引数、・・・のように可変個の引数として渡される仕様のようです。
|
56
60
|
|
57
61
|
|
58
62
|
|
2
追記
test
CHANGED
@@ -103,3 +103,11 @@
|
|
103
103
|
argsには[2, 4]が渡される
|
104
104
|
|
105
105
|
```
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
さらに追記
|
110
|
+
|
111
|
+
[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/template_strings](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/template_strings)
|
112
|
+
|
113
|
+
このあたりがもっと詳しい解説なので参考になると思います。raw stringsのメカニズムなんかの説明もあります。
|
1
追記
test
CHANGED
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
```js
|
60
60
|
|
61
|
-
f `A${1+1}B${2+2}C`
|
61
|
+
f `A${1 + 1}B${2 + 2}C`
|
62
62
|
|
63
63
|
|
64
64
|
|
@@ -66,10 +66,40 @@
|
|
66
66
|
|
67
67
|
|
68
68
|
|
69
|
-
f(['A', 'B', 'C'],
|
69
|
+
f(['A', 'B', 'C'], 2, 4)
|
70
70
|
|
71
71
|
```
|
72
72
|
|
73
73
|
|
74
74
|
|
75
75
|
のような関数呼び出しとして解釈されるということですね。
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
おっと書き忘れ・・・こういう引数を受け取る場合第一引数は
|
80
|
+
|
81
|
+
formats
|
82
|
+
|
83
|
+
のようにただ一つの仮引数で受け取りますが、第二引数以降は可変個数の引数なので
|
84
|
+
|
85
|
+
...args
|
86
|
+
|
87
|
+
のように...を仮引数の前に書く必要があります。こうすると複数のカンマ区切りの引数が配列としてargsに入ってくれます。
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
```js
|
92
|
+
|
93
|
+
function f(formats, ...args) { ... }
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
f(['A', 'B', 'C'], 2, 4)
|
98
|
+
|
99
|
+
==>
|
100
|
+
|
101
|
+
formatsには['A', 'B', 'C']が渡され
|
102
|
+
|
103
|
+
argsには[2, 4]が渡される
|
104
|
+
|
105
|
+
```
|