回答編集履歴

2

表現訂正

2018/04/23 04:47

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

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

追記

2018/04/23 04:46

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

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という属性はありません」としか言うことができないのです。それを解釈して正しい姿をイメージするのは人間だけにできることなんです。