効率的なデバッグをサポートするFirebugのコンソールAPI
杉山貴章(オングス)
2008-11-11 17:00:00
FirebugにはコンソールAPIとしてJavaScriptから呼び出すことのできる各種関数が用意されている。これを使えばJavaScriptのデバッグをさらに効率的に行うことができるようになる。
コンソール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;
}
- ホワイトペーパー


