haiju's 開発メモ

開発に必要な情報を自分用にメモ

JavaScriptでERROR TypeError: Cannot read property 'x' of undefinedの意味

プロパティ「x」がundefinedなのではなく、プロパティ「x」

があるデータ自体がundefinedらしい。

でも、if文でプロパティ「x」があるデータをundefiniedか

どうか聞いているのに、elseに書かれてるプロパティ「x」

でエラーが発生するのはなんでやねーんって思う。

「a === undefined」って聞き方が悪いのか?と思って

「typeof(a) === undefined」って聞き方してるのに、うまく

いかない。最初、PHPJavaのように「a !== undefined」で

聞いてるから動かないのかと思ったけど、そうでもないらしい。

undefinedは変数自体の定義はあるけど、中身がない。

nullはそもそも変数がないまたは空らしいんだけども・・・

この辺も曖昧すぎるな。

イライラする前に日本語情報はあてにせず、英語情報で

勉強するしかないのかー(ΦωΦ;)

その後、いろいろ試した挙げ句にDBのデータを見て

どうのこうのって書いてエラーハンドリングもしたい

場合は、他の言語と違い以下のようにするといいっぽい。

undefinedとかnullとか書きたくなっても、そこは他とは

違う文化を受け入れて我慢するのがいいっぽいw(ΦωΦ)

[うまく行った例]

if (results[0]) {

    if (results[0]["id"]) {

        // 正常系の処理

    }

} else {

   // エラーハンドリング

}

[参考サイト]

airbrake.io

qiita.com