回答編集履歴

3

カンマ演算子の使い方

2020/10/03 22:28

投稿

think49
think49

スコア18189

test CHANGED
@@ -1,3 +1,19 @@
1
+ ### カンマ演算子
2
+
3
+
4
+
5
+ > ```JavaScript
6
+
7
+ > var x = ('ab', 10, 'egg');
8
+
9
+ > console.log(x);
10
+
11
+ > //egg と出力される意味がわかりません。
12
+
13
+ > ```
14
+
15
+
16
+
1
17
  `()` で括る事で**式(Expression)**として扱われます。
2
18
 
3
19
  `,` の**カンマ演算子によって、最後の式が評価され**、変数 `x` には `"egg"` が代入されています。
@@ -10,4 +26,70 @@
10
26
 
11
27
 
12
28
 
29
+ ### カンマ演算子の使い方
30
+
31
+
32
+
33
+ > 横からですが、どういったときに使用するのでしょうか?
34
+
35
+
36
+
37
+ カンマ演算子は、**別々の文に存在している「式」を「1つの文」に収める場合**に使います。
38
+
39
+ アロー関数の略式記法で比較的見られます。
40
+
41
+
42
+
43
+ ```JavaScript
44
+
45
+ const foo = number => (number*=2, number + 'x' + number);
46
+
47
+ foo(2); // "4x4"
48
+
49
+ ```
50
+
51
+
52
+
53
+ あと、私はfor文の第二項目で使ったことがあります。
54
+
55
+
56
+
57
+ ```JavaScript
58
+
59
+ for(var i = 0, len = 10, array = []; array.push(i), i < len; ++i);
60
+
61
+ console.log(JSON.stringify(array)); // [0,1,2,3,4,5,6,7,8,9,10]
62
+
63
+ ```
64
+
65
+
66
+
67
+ `array.push(i)` を外に出すと、出力値が変化します。
68
+
69
+
70
+
71
+ ```JavaScript
72
+
73
+ for(var i = 0, len = 10, array = []; i < len; ++i) array.push(i);
74
+
75
+ console.log(JSON.stringify(array)); // [0,1,2,3,4,5,6,7,8,9]
76
+
77
+ ```
78
+
79
+
80
+
81
+ 例えば、`[0,1,2,3,4,5,6,7,8,9]` を期待していた場合、
82
+
83
+
84
+
85
+ - `len === 9` なら前者(カンマ演算子)を使います
86
+
87
+ - `len === 10` なら後者を使います
88
+
89
+
90
+
91
+ 変数 `len` の値に応じて、両者を使い分ける事が出来ます。
92
+
93
+
94
+
13
95
  Re: y.koyama さん

2

()

2020/10/03 22:28

投稿

think49
think49

スコア18189

test CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
 
6
6
 
7
+ - [グループ化演算子 - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Grouping)
8
+
7
9
  - [カンマ演算子 - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Comma_Operator)
8
10
 
9
11
 

1

2020/10/03 22:00

投稿

think49
think49

スコア18189

test CHANGED
@@ -1,4 +1,4 @@
1
- `()` で括る事で**式**として扱われます。
1
+ `()` で括る事で**式(Expression)**として扱われます。
2
2
 
3
3
  `,` の**カンマ演算子によって、最後の式が評価され**、変数 `x` には `"egg"` が代入されています。
4
4