Edited at

Cannot read property 'fuga' of undefined とは

More than 3 years have passed since last update.

エラーの内容について、ちゃんと意味を理解できていなかったので書いてみる。

今プロジェクトでjsを使っているのだが、その際に表題のような

Cannot read property 'fuga' of undefined

というエラーが出たりする。

これが出た時に、

「fugaがundefinedなんですね!」

というと

「fuck」

という顔をされてしまい、説明をいただきました。

英語の問題ですね。

問題は

「'fuga' of undefined」

意味は「undefined の 'fuga'」

fuga がundedinedなんじゃなくて、

「undefinedにある'fuga'property(名前付きの値)は読み込めません。」

という意味になる。

ということはfugaの前のオブジェクトがundefinedだということ。

今回は

hoge = undefined

hoge.fuga()

とすると上記のエラーが出た。つまりhogeがundefinedだったのだ。

なのでこういうエラーが出た時にエラーチェックをしようとしたければ

if (hoge)

hoge.fuga()
else
...

とすると、hogeがundefindedのときにきちんと分岐してくれる。

勉強になった。