回答編集履歴

1

疑問②への回答を追加

2023/02/03 23:18

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -3,3 +3,52 @@
3
3
 
4
4
  アラートはユーザーがOKを押すまで処理が中断されます。
5
5
  `alert()`の代わりに`consle.log()`でログを表示させれば、スクロールしている間は繰り返し実行されているのが見えると思います。
6
+
7
+ ## 疑問②への回答
8
+ > returnの右側の不等式?がどういう意味なのかが分からないです。
9
+
10
+ 改行してしまっているので分かりにくいですが、
11
+ ```javascript
12
+ return arguments.length > 0 ? this.on(name,null,data,fn) : this.trigger(name);
13
+ ```
14
+ と、実際には1行の処理です。
15
+ 三項演算子という記法です。
16
+
17
+ ##### 三項演算子について
18
+ 三項演算子はif文を1行で書けてしまう便利な記法です。
19
+ ```javascript
20
+ 条件 ? trueの時の処理 : falseの時の処理;
21
+ ```
22
+
23
+ 例)
24
+ ```javascript
25
+ // if文で書いた場合
26
+ const age = 20;
27
+ let type;
28
+
29
+ if (age >= 18) {
30
+ type = 'adult';
31
+ } else {
32
+ type = 'child';
33
+ }
34
+
35
+ console.log(type); // 'adult'
36
+
37
+ // 三項演算子の場合
38
+ const age = 16
39
+ let type = age >= 18 ? 'adult' : 'child';
40
+
41
+ console.log(type); // 'child'
42
+ ```
43
+
44
+ ##### 質問のコードの三項演算子の処理
45
+ 私はjQueryに詳しくありませんので詳しくは分かりませんが、
46
+
47
+ - `arguments.length > 0 ?`
48
+ - 渡された引数の長さが1つ以上だったら
49
+ - `this.on(name,null,data,fn)`
50
+ - 対象に`.on()`メソッドを実行する
51
+ - `: this.trigger(name)`
52
+ - 引数が1つ未満だったら、対象に`.trigger()`メソッドを実行する
53
+
54
+ という意味合いです。