Chrome 開發(fā)者工具使用

本文轉自Chrome 控制臺console的用法


先的簡單介紹一下chrome的控制臺,打開chrome瀏覽器,按f12就可以輕松的打開控制臺



大家可以看到控制臺里面有一首詩還有其它信息,如果想清空控制臺,可以點擊左上角那個
來清空,當然也可以通過在控制臺輸入console.clear()來實現(xiàn)清空控制臺信息。如下圖所示


現(xiàn)在假設一個場景,如果一個數(shù)組里面有成百上千的元素,但是你想知道每個元素具體的值,這時候想想如果你用alert那將是多慘的一件事情,因為alert阻斷線程運行,你不點擊alert框的確定按鈕下一個alert就不會出現(xiàn)。
下面我們用console.log來替換,感受一下它的魅力。

看了上面這張圖,是不是認識到log的強大之處了,下面我們來看看console里面具體提供了哪些方法可以供我們平時調試時使用。

目前控制臺方法和屬性有:
["$$", "$x", "dir", "dirxml", "keys", "values", "profile", "profileEnd", "monitorEvents", "unmonitorEvents", "inspect", "copy", "clear", "getEventListeners", "undebug", "monitor", "unmonitor", "table", "$0", "$1", "$2", "$3", "$4", "$_"]
下面我們來一一介紹一下各個方法主要的用途。
一般情況下我們用來輸入信息的方法主要是用到如下四個
1、console.log 用于輸出普通信息
2、console.info 用于輸出提示性信息
3、console.error用于輸出錯誤信息
4、console.warn用于輸出警示信息
5、console.debug用于輸出調試信息
用圖來說話

console對象的上面5種方法,都可以使用printf風格的占位符。不過,占位符的種類比較少,
只支持字符(%s)、整數(shù)(%d或%i)、浮點數(shù)(%f)和對象(%o)四種

console.log("%d年%d月%d日",2011,3,26);console.log("圓周率是%f",3.1415926);


%o占位符,可以用來查看一個對象內部情況
var dog = {};dog.name = "大毛";dog.color = "黃色";console.log("%o", dog);

6、console.dirxml用來顯示網(wǎng)頁的某個節(jié)點(node)所包含的html/xml代碼****
<body> <table id="mytable"> <tr> <td>A</td> <td>A</td> <td>A</td> </tr> <tr> <td>bbb</td> <td>aaa</td> <td>ccc</td> </tr> <tr> <td>111</td> <td>333</td> <td>222</td> </tr> </table></body><script type="text/javascript"> window.onload = function () { var mytable = document.getElementById('mytable'); console.dirxml(mytable); }</script>


7、console.group輸出一組信息的開頭
8、console.groupEnd結束一組輸出信息
看你需求選擇不同的輸出方法來使用,如果上述四個方法再配合group和groupEnd方法來一起使用就可以輸入各種各樣的不同形式的輸出信息。

哈哈,是不是覺得很神奇呀!
9、console.assert對輸入的表達式進行斷言,只有表達式為false時,才輸出相應的信息到控制臺

10、console.count(這個方法非常實用哦)當你想統(tǒng)計代碼被執(zhí)行的次數(shù)

11、console.dir(這個方法是我經(jīng)常使用的 可不知道比for in方便了多少)直接將該DOM結點以DOM樹的結構進行輸出,可以詳細查對象的方法發(fā)展等等

12、console.time 計時開始
13、console.timeEnd 計時結束(看了下面的圖你瞬間就感受到它的厲害了)

14、console.profile
console.profileEnd
配合一起使用來查看CPU使用相關信息

在Profiles面板里面查看就可以看到cpu相關使用信息

15、console.timeLineconsole.timeLineEnd配合一起記錄一段時間軸
16、console.trace 堆棧跟蹤相關的調試
上述方法只是我個人理解罷了。如果想查看具體API,可以上官方看看,具體地址為:https://developer.chrome.com/devtools/docs/console-api
控制臺的一些快捷鍵
1、方向鍵盤的上下鍵,大家一用就知曉。比如用上鍵就相當于使用上次在控制臺的輸入符號
2、$_命令返回最近一次表達式執(zhí)行的結果,功能跟按向上的方向鍵再回車是一樣的

上面的$_
需要領悟其奧義才能使用得當,而0
4則代表了最近5個你選擇過的DOM節(jié)點。
什么意思?在頁面右擊選擇審查元素
,然后在彈出來的DOM結點樹上面隨便點選,這些被點過的節(jié)點會被記錄下來,而$0
會返回最近一次點選的DOM結點,以此類推,$1返回的是上上次點選的DOM節(jié)點,最多保存了5個,如果不夠5個,則返回undefined
。

3、Chrome 控制臺中原生支持類jQuery的選擇器,也就是說你可以用$
加上熟悉的css選擇器來選擇DOM節(jié)點

4、copy通過此命令可以將在控制臺獲取到的內容復制到剪貼板

(哈哈 剛剛從控制臺復制的body里面的html可以任意粘貼到哪, 比如記事本, 是不是覺得功能很強大)
5、keys和values前者返回傳入對象所有屬性名組成的數(shù)據(jù),后者返回所有屬性值組成的數(shù)組

說到這,不免想起console.table方法了

6、monitor & unmonitor
monitor(function),它接收一個函數(shù)名作為參數(shù),比如function a
,每次a
被執(zhí)行了,都會在控制臺輸出一條信息,里面包含了函數(shù)的名稱a
及執(zhí)行時所傳入的參數(shù)。
而unmonitor(function)便是用來停止這一監(jiān)聽。

看了這張圖,應該明白了,也就是說在monitor和unmonitor中間的代碼,執(zhí)行的時候會在控制臺輸出一條信息,里面包含了函數(shù)的名稱a
及執(zhí)行時所傳入的參數(shù)。當解除監(jiān)視(也就是執(zhí)行unmonitor時)就不再在控制臺輸出信息了。
$ // 簡單理解就是 document.querySelector 而已。
$$ // 簡單理解就是 document.querySelectorAll 而已。
$_ // 是上一個表達式的值
0?
4 // 是最近5個Elements面板選中的DOM元素,待會會講。
dir // 其實就是 console.dir
keys // 取對象的鍵名, 返回鍵名組成的數(shù)組
values // 去對象的值, 返回值組成的數(shù)組

下面看一下console.log的一些技巧
1、重寫console.log 改變輸出文字的樣式


2、利用控制臺輸出圖片

3、指定輸出文字的樣式

最后說一下chrome控制臺一個簡單的操作,如何查看頁面元素,看下圖就知道了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容