#javascript 開発で出会った TypeError

期待された型以外に代入されると js がびっくりしてタイプエラー吐き出します。undefined と null の値でよく発生します。フロントエンド開発なら誰しも一度あったことがあると思いますが、TypeError のいろいろを調べてみました。

Mozilla TypeError についての説明(opens new window)

::: TypeError エラーの原因
予期しない型があった
undefined または null の値でしばしば発生
:::

エラーキャッチ

try {
  null.f();
} catch (e) {
  console.log(e instanceof TypeError); // true
  console.log(e.message); // "null has no properties"
  console.log(e.name); // "TypeError"
  console.log(e.fileName); // "Scratchpad/1"
  console.log(e.lineNumber); // 2
  console.log(e.columnNumber); // 2
}

エラー生成

try {
  throw new TypeError("Hello message", "someFile.js", 10);
} catch (e) {
  console.log(e instanceof TypeError); // true
  console.log(e.message); // "Hello message"
  console.log(e.name); // "TypeError"
  console.log(e.fileName); // "someFile.js"
  console.log(e.lineNumber); // 10
  console.log(e.columnNumber); // 0
}

#TypeError: Cannot read property '0' of undefined

console log に出たエラー

TypeError: Cannot read property '0' of undefined
    at l.<anonymous> (6.ff9fb8e6.js:1)
    at l.e._render (app.c2acb957.js:7)
    at l.r (app.c2acb957.js:7)
    at pn.get (app.c2acb957.js:7)
    at new pn (app.c2acb957.js:7)
    at e (app.c2acb957.js:7)
    at l._n.$mount (app.c2acb957.js:7)
    at init (app.c2acb957.js:7)
    at app.c2acb957.js:7
    at f (app.c2acb957.js:7)

該当ソース

{{ page.frontmatter && page.frontmatter.tags[0].toUpperCase() }}

修正後



 



{{
  page.frontmatter &&
    page.frontmatter.tags &&
    page.frontmatter.tags[0].toUpperCase()
}}
2020-11-19
  • javascript

関連記事

javascript 日本語 shift-js 対応 CSV ダウンロード
ブラウザーで動く javascript のクッキー操作ライブラリ js-cookie
ReferenceError: location is not defined
nodejs 使う時のエラーたち
javascript reduce 連想配列の合計計算覚えよう
開発時によく使うゼロ埋めパディング作業まとめ
正規表現一覧 よく使う検索・置換のパターン
javascript 面接問題のいろいろ
vuejs i18n の html-lang と font 設定
Javascript vuejs の validation 正規表現でフォームチェック作ったときのメモ
javascript で作る html から PDF 変換 pdfmake の日本語対応
nuxtjs と codeigniter で jwt システム構築
javascript 楽しく遊ぼう!メッセージつぶやくウシ cowsay