Firebug & Chrome Console 控制台的一些其他功能
console.log(object[, object, ...])
使用頻率最高的一條語句:向控制台輸出一條消息。支援 C 語言 printf 式的格式化輸出。當然,也可以不使用格式化輸出來達到同樣的目的:
var animal='frog', count=10;
console.log("The %s jumped over %d tall buildings", animal, count);
console.log("The", animal, "jumped over", count, "tall buildings");
console.debug(object[, object, ...])
向控制台輸出一條資訊,它包括一個指向該行代碼位置的超連結。
console.info(object[, object, ...])
向控制台輸出一條資訊,該資訊包含一個表示“資訊”的圖示,和指向該行代碼位置的超連結。
console.warn(object[, object, ...])
同 info。差別是圖示與樣式不同。
console.error(object[, object, ...])
同 info。差別是圖示與樣式不同。error 實際上和 throw new Error() 産生的效果相同,使用該語句時會向浏覽器抛出一個 js 異常。
console.assert(expression[, object, ...])
斷言,測試一條表達式是否為真,不為真時将抛出異常(斷言失敗)。
console.dir(object)
輸出一個對象的全部屬性(輸出結果類似于 DOM 面闆中的樣式)。
console.dirxml(node)
輸出一個 HTML 或者 XML 元素的結構樹,點選結構樹上面的節點進入到 HTML 面闆。
console.trace()
輸出 Javascript 執行時的堆棧追蹤。
console.group(object[, object, ...])
輸出消息的同時打開一個嵌套塊,用以縮進輸出的内容。調用 console.groupEnd() 用以結束這個塊的輸出。
console.groupCollapsed()
同 console.group(); 差別在于嵌套塊預設是收起的。
console.time(name)
計時器,當調用 console.timeEnd(name);并傳遞相同的 name 為參數時,計時停止,并輸出執行兩條語句之間代碼所消耗的時間(毫秒)。
console.profile([title])
與 profileEnd() 結合使用,用來做性能測試,與 console 面闆上 profile 按鈕的功能完全相同。
console.count([title])
輸出該行代碼被執行的次數,參數 title 将在輸出時作為輸出結果的字首使用。
console.clear()
清空控制台
指令行
控制台的輸出面闆右邊,是控制台的輸入面闆(Chrome 調試工具對應為下方),在這裡除了可以運作正常的 javascript 代碼,還内置了相當數量的指令行可以輔助我們的調試工作,下面是一些常用指令行的簡單介紹。
$(id)
傳回一個給定 id 的元素。
$$(selector)
傳回給定的 css 選擇器比對到的一組元素。
$x(xpath)
傳回給定的 XPath 表達式比對到的一組元素。
$0
在 HTML 面闆中選中的元素。
$1
上一次在 HTML 面闆中選中的元素。
$n(index)
通路最近 5 個被選中過的元素,index 的範圍: 0 – 4。
dir(object)
同 console.dir(object)。
dirxml(node)
同 console.dirxml(node)。
clear()
同 console.clear()。
inspect(object[, tabName])()
在合适的(或一個指定的) tab 中檢視一個對象。
keys(object)
傳回一個對象的所有屬性的鍵。
values(object)
傳回一個對象的所有屬性的值。
debug(fn)
在函數第一行添加一個斷點,使用 undebug(fn) 移除斷點。
monitor(fn)
開啟一個函數的調用日志,使用 unmonitor(fn) 關閉該功能。非常有用的一個指令,但是它似乎并沒有很好地工作。
monitorEvents(object[, types])
開啟一個元素的某個事件(或所有事件)被觸發時的日志記錄。用例如下:
monitorEvents($0,['click'])
上面的指令行被執行後,将開啟目前在 HTML 面闆中被選中元素的 click 事件監控,一旦這個元素的 click 事件被觸發,事件對象将會在控制台輸出。如果不指定第二個參數,将對所有事件進行記錄。
profile([title])
同 console.profile([title])