chrome dev-tools功能很強大。相信大多數(shù)人使用最多的一個api就是console.log,這很有用,但是這只是chrome 調(diào)試api 之一,還有很多其它非常強大的api!推開門,是另一片風(fēng)景。
console.log
其它沒啥可講,主要看看其格式化功能:
> console.log("I am %d years old, my name is %s",18,"Davin")
> I am 18 years old, my name is Davin
輸出對象:%O,var t={name:"Davin",age:18}:

使用css樣式:%c:

是不是似曾相識? 百度首頁按f12看吧。
顯示錯誤和警告:console.error、console.warn

注:除過這些,console還有count、assert、dir等方法,詳情移步chrome console api.
$_
$_代表上一個語句的執(zhí)行結(jié)果:

$0 - $4
代表inspect最近選中的5個dom對象,$0代表最近一次選中的dom。這非常有用,我們可以在elements面板中用鼠標單擊某個dom,如果要對該dom進行操作,直接在命令行輸入$0便是該dom的引用.

$(selector)、$$(selector)
使用css選擇器選取?dom, 前者只匹配第一個元素,是document.querySelector() 的一個別名,后者會返回所有,是document.querySelectorAll().的?別名。

注意:如果"$"符已在js中定義,則會覆蓋系統(tǒng)原始的$,當(dāng)頁面中引入jQuery時?,$(jQuery)將會覆蓋調(diào)試?命令中的$。區(qū)分$有沒有被覆蓋的一個簡單的方法是查看其定義:
?

下面是引入Neat.js后,neat?會定義$:

clear()
清楚控制臺的所有輸出
copy(object)
將object拷貝到剪貼板
debug(function)
調(diào)試某個函數(shù),當(dāng)指定的函數(shù)被執(zhí)行時將會斷在被調(diào)試函數(shù)的源代碼的第一句。

inspect(object/function)
查找某個對象或?函數(shù)。執(zhí)行后會定位到該對象/函數(shù)處。

命令行輸入后,Elements面板中會自動選中body.

monitor(function)
觀察某個函數(shù)被調(diào)用的情況:

monitorEvents(object[, events])
觀察某個對象發(fā)生的事件.如下,觀察當(dāng)前窗口大小變化的事件。

可以?同時觀察多個事件:
monitorEvents(window, ["resize", "scroll"])
可以和$0-$4結(jié)合使用:
monitorEvents($0, "key");
注:$0為一個input,觀察其鍵盤事件。
當(dāng)然也存在著相應(yīng)的解綁事件,如下:
undebug(function)、unmonitor(function)、unmonitorEvents(object[, events])
getEventListeners(object)
獲取object的所有事件listeners.

輸出document DOMContentLoaded事件listener源碼。
keys(object)、values(object)
查看對象的key、value

table(data[, columns])
將對象數(shù)據(jù)以表格形式顯示,columns為可選的列標題。

詳細的文檔請參考:Command Line API Reference