質問編集履歴

1

誤って途中で質問起票してしまったため文を完成させた

2019/10/12 11:35

投稿

komicool
komicool

スコア24

test CHANGED
@@ -1 +1 @@
1
- 名前付き引数の中括弧の意味・中括弧の有無による挙動の違いについて
1
+ 名前付き引数の中括弧の意味・中括弧(引数)の有無による関数挙動の違いについて
test CHANGED
@@ -18,13 +18,13 @@
18
18
 
19
19
 
20
20
 
21
- 実行コマンド1:print(getTriangle({ base:5, height:4 }));
21
+ - 実行コマンド1:print(getTriangle({ base:5, height:4 }));
22
22
 
23
- 出力1:10
23
+ - 出力1:10
24
24
 
25
- 実行コマンド2:print(getTriangle({ base:5 }));
25
+ - 実行コマンド2:print(getTriangle({ base:5 }));
26
26
 
27
- 出力2:2.5
27
+ - 出力2:2.5
28
28
 
29
29
 
30
30
 
@@ -32,14 +32,24 @@
32
32
 
33
33
  Exception: TypeError: Right side of assignment cannot be destructuredというエラーに
34
34
 
35
- なってしまいました。一方、実行コマンド4のようにしたところ
35
+ なってしまいました。一方、実行コマンド4のようにしたところ、正常に関数が実行されました。
36
36
 
37
37
 
38
38
 
39
- 実行コマンド3:print(getTriangle({}));
39
+ - 実行コマンド3:print(getTriangle());
40
40
 
41
- 出力3:0.5
41
+ - 出力3:Exception: TypeError: Right side of assignment cannot be destructured
42
42
 
43
- 実行コマンド4:print(getTriangle({}));
43
+ - 実行コマンド4:print(getTriangle({}));
44
44
 
45
- 出力:0.5
45
+ - 出力4:0.5
46
+
47
+ - 実行コマンド5:print(getTriangle(1));
48
+
49
+ - 出力5:0.5
50
+
51
+
52
+
53
+ 冒頭のような関数定義の場合に、引数なしで実行した場合にエラーが生じてしまうのはなぜでしょうか。
54
+
55
+ ご教示いただけると幸いです。