回答編集履歴
3
切り分けポイント
answer
CHANGED
@@ -33,6 +33,13 @@
|
|
33
33
|
|
34
34
|
### 切り分け
|
35
35
|
|
36
|
+
**切り分けポイント**
|
37
|
+
|
38
|
+
1. TypeErrorが発生する最小限のコードは「****」である
|
39
|
+
2. 「プロパティが存在しない」or「プロパティに undefined 値が代入されている」
|
40
|
+
3. プロパティは「直属のプロパティである」or「prototype-chain 上のプロパティである」
|
41
|
+
4. プロパティは「静的プロパティである」or「getterプロパティである」「new Proxyのtrapプロパティである」
|
42
|
+
|
36
43
|
**(Q1) エラーコードの特定**
|
37
44
|
下記コードで「`TypeError: Cannot read property 'Name' of undefined`」が発生しますか
|
38
45
|
(※エラーメッセージが異なれば、当該エラーメッセージを添えてください)
|
2
切り分け
answer
CHANGED
@@ -31,4 +31,22 @@
|
|
31
31
|
- TypeError直前に**breakpoint**を設置する
|
32
32
|
- TypeError直前で `console.log(JSON.stringify(arrRatioList))`
|
33
33
|
|
34
|
+
### 切り分け
|
35
|
+
|
36
|
+
**(Q1) エラーコードの特定**
|
37
|
+
下記コードで「`TypeError: Cannot read property 'Name' of undefined`」が発生しますか
|
38
|
+
(※エラーメッセージが異なれば、当該エラーメッセージを添えてください)
|
39
|
+
|
40
|
+
```JavaScript
|
41
|
+
ratioList[i].Name; // TypeError: Cannot read property 'Name' of undefined
|
42
|
+
```
|
43
|
+
|
44
|
+
**(Q2) プロパティ状態の特定**
|
45
|
+
下記コードの出力結果を教えてください
|
46
|
+
|
47
|
+
```JavaScript
|
48
|
+
console.log(i, i in ratioList, Object.prototype.hasOwnProperty.call(ratioList, i), ratioList[i]);
|
49
|
+
console.log(Object.getOwnPropertyDescriptor(ratioList, i));
|
50
|
+
```
|
51
|
+
|
34
52
|
Re: moimoi_sushi さん
|
1
TypeError
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
### TypeError
|
1
|
+
### TypeError
|
2
2
|
|
3
3
|
TypeScriptからJavaScriptにコンパイルしたとして、
|
4
4
|
|
@@ -19,7 +19,7 @@
|
|
19
19
|
};
|
20
20
|
```
|
21
21
|
|
22
|
-
最も気になるのは、`ratioList.length < 2` である場合に**
|
22
|
+
最も気になるのは、`ratioList.length < 2` である場合に**TypeError**になる事です。
|
23
23
|
|
24
24
|
```JavaScript
|
25
25
|
ratioListsLoop([], 'foo'); // TypeError: Cannot read property 'Name' of undefined
|