スポンサーリンク

JavaScriptの動かないコード  (JavaScriptエラー集)

「このJavaScriptコードが動かないのは,なぜですか?」というミニクイズ集。
すべて制限時間は1分。

別名,JavaScriptのエラー事典。またはアンチパターンのまとめ。

2015年5月現在,全53記事。

中級編

JavaScriptの仕様関連

  1. p要素への appendChild() で失敗する
  2. かけ算を間違える  
  3. イベントハンドラが見る値のエラー
  4. クロージャを使わない場合に起きるエラー  
  5. オブジェクトのprototypeを変更した時のエラー  
  6. 正規表現で同じ文字の連続を検出したい - 置換前パターン中での後方参照
  7. jsonオブジェクトをevalできないエラー
  8. 不要なイベントが連鎖で発生してしまう  (バブリングの対処)
  9. オブジェクトのプロパティ定義にthisを使って失敗するエラー
  10. setTimeoutのタイマーが指定時刻に動かないエラー
  11. オブジェクトのメソッドを変数代入でコピーできない
  12. innerHTMLを追記するとイベントハンドラが消える
  13. nullが0以上0以下と認識されてしまう
  14. 文字数のカウントに失敗する
  15. callで,コンテキスト引数にnull・undefinedや,falseなどプリミティブ型の値を渡した時のthisの挙動
  16. 大きな数字を表示できないエラー (2の53乗を超えると,IEEE754の精度保証外なので計算もalertも不可能)
  17. 配列のsort結果がおかしい …評価関数が正数か負数以外の値を返す場合の挙動のエラー
  18. forループ内でイベントリスナを定義したら,動作がおかしい。(クロージャや関数オブジェクトの性質を理解していないために発生するエラー)
  19. 正規表現の括弧キャプチャを,グローバルで繰り返しmatchできない (gオプションを付けると部分文字列の抽出が無効)
  20. 正規表現をwhile内で定義すると無限ループで固まるエラー (execでグローバルなマッチだと,処理がフリーズ)

各ブラウザの仕様やクロスブラウザ関連

  1. "インターネットサイト を開けません。操作は中断されました。"  
  2. Ajax読み込み時に「80020101」のエラー  
  3. テーブルに行追加できない  
  4. selectの中味を書き換えるときのエラー
  5. evalでfunctionを作る時のエラー
  6. scriptタグの中味を動的に書き換えた時のエラー
  7. splitで文字列を分割する時のエラー
  8. cloneNodeで選択状態が変わるエラー
  9. innerHTMLに閉じタグを書き込む時のエラー
  10. Ajax読み込み時に「システムエラー -1072896658」
  11. 動的追加したイベントの実行順序 ( addEventListener vs attachEvent )
  12. イベントハンドラに同じ関数を2回以上追加したい
  13. DOMで子要素を指定する際のエラー
  14. onKeydownイベントが認識されない
  15. イベントの詳細情報を第一引数で取得できない
  16. iframe内にDOMアクセスできないエラー
  17. iframe内のDOM要素を別フレームにコピーできないエラー
  18. IEでスコープチェインにdocumentが補完されるように見える不思議
  19. clickイベントを強制的に発生させたい (fireEvent/createEventの使い方)
  20. イベント強制発生までの遅延時間をなくしたい
  21. ラジオボタンとプルダウンのonchangeイベントがおかしい
  22. 重いページで,onloadのイベントリスナが実行されない
  23. Aタグがリンクとして機能しないエラー (URL・hrefの%エンコードがRFC違反だと,IEで例外が発生)

番外編

prototype.js

  1. Prototype.js + Script.aculo.us のはまり所


(一部にバッドノウハウを含むかもしれないが,)大部分は,自分自身がWebアプリケーションの開発に携わっている際に実際に遭遇し,悩まされたエラーである。