質問編集履歴
1
markdown修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -68,15 +68,15 @@
|
|
68
68
|
|
69
69
|
#### 要点
|
70
70
|
|
71
|
-
1
|
71
|
+
[1] 関数を一つにするか複数に分けるか
|
72
|
-
2
|
72
|
+
[2] 出力値を固定するか、変動するか
|
73
|
-
3
|
73
|
+
[3] 入力値を固定するか、変動するか
|
74
74
|
|
75
|
-
1
|
75
|
+
[1] は一つの関数の中で「エラーが発生するか、しないか」のような判断要素を関数に持たせて完結させるか、「`XMLHttpRequest` と Fetch API」のように根幹となる挙動が同じでも期待する結果が違う考えから関数を分けるか。
|
76
76
|
|
77
|
-
2
|
77
|
+
[2] は例えば、「エラーが発生した場合にエラーメッセージのリストを返し、エラーが発生なかった場合は `Number` 型を返す」というように条件に応じて出力値を変えるか、「エラーが発生したら `{value: NaN, error: ['エラーメッセージ1', 'エラーメッセージ2']}` を返し、エラーが発生しなかったら `{value: 12, error: []}` を返す」のように `Number` 型への拘りを止めて出力を固定するか。
|
78
78
|
|
79
|
-
3
|
79
|
+
[3] は例えば、「`evalCalculation('*1+2', true);` で関数呼び出ししたなら `SyntaxError` 例外を発生させずにエラーメッセージリストとなるオブジェクトを返し、`evalCalculation('*1+2', false);` または `evalCalculation('*1+2');` で関数呼び出ししたなら `SyntaxError` の例外を発生させる、というように入力条件に応じて挙動を変更するか、何らかの形で統一的なインターフェースを確立(一例として 2. の出力値を固定する事例が該当)して入力値を `evalCalculation('*1+2');` に固定するか。
|
80
80
|
|
81
81
|
#### 打開案コード事例
|
82
82
|
|