効率的なデバッグをサポートするFirebugのコンソールAPI

杉山貴章(オングス)
2008-11-11 17:00:00
  • このエントリーをはてなブックマークに追加

コンソールAPIでJavaScriptの実行時情報を出力

 FirebugのコンソールAPIを使えば、コンソールへのメッセージの出力やスクリプトの実行時間の計測などを行うことができる。具体的には以下のような関数が用意されている。

  • console.log(object[, object, ...]): メッセージ(オブジェクト)をコンソールに出力
  • console.debug(object[, object, ...]): メッセージをコードの行番号付きで出力
  • console.info(object[, object, ...]): メッセージを、先頭に「i」のアイコンを付けて出力
  • console.warn(object[, object, ...]): メッセージを、先頭に「!」のアイコンを付けて出力
  • console.error(object[, object, ...]): メッセージを、先頭に「×」のアイコンを付けて出力
  • console.assert(expression[, object, ...]): expressionの評価結果がfalseのとき、第2引数以降に指定されたメッセージを出力
  • console.dir(object): 渡されたオブジェクトのプロパティと値をコンソールに出力
  • console.dirxml(node): 渡されたノードのソースツリーをコンソールに出力
  • console.trace(): スタックトレースを出力
  • console.group(object[, object, ...]): console.groupEndが呼び出されるまで、コンソールの出力をグループ化
  • console.groupEnd(): console.groupによって開始されたグループ化を解除
  • console.time(name): タイマーを開始してconsole.timeEndが呼び出されるまでの時間を計測
  • console.timeEnd(name): タイマーを停止して計測した時間を出力
  • console.profile([title]): console.profileEndが呼び出されるまでに実行された関数のパフォーマンスを解析
  • console.profileEnd(): console.profileによって開始された解析を停止して結果を出力
  • console.count([title]): これまでに(同じタイトルの)console.countが呼ばれた回数をカウントして出力

 これらの関数はコンテンツ側のJavaScriptから呼び出すことができる。例えばリスト1は、前回使用したfirebug-sample.htmlをconsole.logおよびconsole.infoを用いてメッセージを出力するように修正したものだ。これらの関数は第1引数に文字列を指定することでC言語のprintf関数のような変換指定子が使える。変換指定子は%s(文字列)、%dおよび%i(整数)、%f(浮動小数点数)、%o(オブジェクト)がサポートされている。

リスト1 コンソールAPIを用いてコンソールにメッセージを出力する例

function nextImage(n) { 
  current += n;
  console.info('ボタンがクリックされました。現在のcurrentの値は%dです。', current);
  if (current > maxNumber) {
    console.log('currentが最大値を超えました。%dに戻します。', maxNumber);
    current = maxNumber; 
  }
  if (current < 1) {
    console.log('currentが最小値を超えました。1に戻します。');
    current = 1; 
  }
  document.slideImage.src = "images/" + current + sfx; 
}
図1 コンソール側の出力例 図1 コンソール側の出力例
  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]