回答編集履歴
2
表現訂正
test
CHANGED
@@ -62,7 +62,7 @@
|
|
62
62
|
|
63
63
|
|
64
64
|
|
65
|
-
と計算機がいったなら「ふむふむ、x.classNameとやったけど、xがundefinedだったんだな、じゃぁなんでxはundefinedになったんだろう・・・」と推論を進めていくのは人間にしかできないのです。javascriptエンジンは
|
65
|
+
と計算機がいったなら「ふむふむ、x.classNameとやったけど、xがundefinedだったんだな、じゃぁなんでxはundefinedになったんだろう・・・」と推論を進めていくのは人間にしかできないのです。javascriptエンジンにはプログラマーの意図は把握できませんので、
|
66
66
|
|
67
67
|
|
68
68
|
|
1
追記
test
CHANGED
@@ -25,3 +25,53 @@
|
|
25
25
|
|
26
26
|
|
27
27
|
[https://stackoverflow.com/questions/17271644/jsfiddle-errors-wont-show](https://stackoverflow.com/questions/17271644/jsfiddle-errors-wont-show)
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
---
|
32
|
+
|
33
|
+
追記:
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
> デバッグというのをやったことがなく
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
そうでしたか。自分でデバッグしてもわからない場合はどこまでどう調べたかを明記した上で尋ねるのは悪くないと思います。でも全然デバッグせずに尋ねるのはNGです。・・・というより、プログラミングとはどういうものかをよく再認識された方がよいと思います。そもそも自分でデバッグしないことにはプログラムは完成しません。例えばエラーが出たら
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
- そこに書いてあることを「読み」、
|
46
|
+
|
47
|
+
- それが何に起因することか「推測」し、
|
48
|
+
|
49
|
+
- デバッグして掴んだ「事実」を「推測に照らして確認」し、原因を絞り込んでいく
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
いうプロセスを繰り返すのがデバッグです。**デバッグ技術はコードを書くことに負けず劣らず大事**です。
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
「エラーメッセージに何書いてあるかわからない」と不満になることが多いかもしれません。しかし計算機は「あなたが書いたコードの意味なんぞちっとも理解してやしません」。計算機はコードに書かれている通りに盲目的に実行をすることしかできない「高速な阿呆」ですので、彼が見つけた「局所的な事象=エラー」が何故起こったかはプログラマーたる人間が突き止めるしかないのです。
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
> TypeError: cannot read property 'className' of undefined
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
と計算機がいったなら「ふむふむ、x.classNameとやったけど、xがundefinedだったんだな、じゃぁなんでxはundefinedになったんだろう・・・」と推論を進めていくのは人間にしかできないのです。javascriptエンジンは阿呆ですので、
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
- classNameというプロパティー名が間違っているのか
|
70
|
+
|
71
|
+
- xがundefinedだったことが間違っているのか
|
72
|
+
|
73
|
+
- そもそもこの行が実行されたこと自体が期待外だったのか
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
なんてことをわかってやしません。それゆえ「undefinedにclassNameという属性はありません」としか言うことができないのです。それを解釈して正しい姿をイメージするのは人間だけにできることなんです。
|