一 什麼是 Console
Console 是用於顯示 JS和 DOM 對象信息的單獨窗口。而且向 JS 中注入1個 Console 對象,使用該對象
能夠輸出信息到 Console 窗口中。
二 什麼瀏覽器支持 Console
不少人可能都知道 Chrome 和 FireFox(FireBug)中都支持 Console。而其餘瀏覽器都支
持很差。好比 IE8 自帶的開發工具雖然支持 Console,但功能比較單調,顯示對象的時候都是顯示
[Object,Object],並且不能點擊查看對象裏面的屬性。IE六、IE7 雖然能夠安裝 Developer Toolbar,但也
不支持 console。Safari、Opera 都支持 Console,但使用上都沒有 FireBug和 Chrome 的方便。
如今firebug推出了 firebuglite工具,可讓全部瀏覽器都支持Console功能,並且使用上和FireBug
幾乎同樣。詳見 http://getfirebug.com/firebuglite
後面的全部 demo 除特別說明外,都是使用 firebuglite在 IE8 下的測試截圖。
三 爲何不直接使用 alert 或本身寫的 log
/*編程技術*/ 做者 熊星
使用 alert 不是同樣能夠顯示信息,調試程序嗎?alert 彈出窗口會中斷程序,
若是要在循環中顯示信息,手點擊關閉窗口都累死。並且 alert 顯示對象永遠顯示爲[object ]。
本身寫的 log 雖然能夠顯示一些 object 信息,但不少功能支持都沒有 console 好,看完後面 console
的介紹就知道了。
四 Console.log(object[, object, ...])
Console.log 是最簡單輸出信息到 console 窗口的方法,支持多個參數,該方法會把
這些參數組合在一塊兒顯示,e.g:
Log 方法第一個參數支持相似 C 語言 printf 字符串替換模式,好比上面的列子能夠這樣寫:
Log 支持下面幾種替換模式:
%s 代替字符串
%d 代替整數
%f 代替浮點值
%o 代替 Object
五 console.debug,info,warn,error
這 4 種方法與 log 方法使用如出一轍,只是顯示的圖標和文字顏色不同,e.ghtml
六 console. assert(expression[, object, ...])
assert 方法相似於單元測試中的斷言,當 expression 表達式爲 false 的時候,輸出後面的信息,e.g:
注:assert 方法在 firebuglite 不支持,Chrome 和 FireBug 支持
七 console.clear()
該方法清空 console 中的全部信息
八 console.dir(object)
以列表的方式打印 object 對象中的全部屬性,e.g:
九 console.dirxml(node)
把 html 元素的html 代碼打印出來,e.g:
十 console.trace()
trace 方法能夠查看當前函數的調用堆棧信息,即當前函數是如何調用的,e.g:
十一 console.group(object[, object, ...]), groupCollapsed, groupEnd
這 3 個函數用於把 log 等輸出的信息進行分組,方便閱讀查看。groupCollapsed
方法與 group 方法同樣,只是顯示的分組默認是摺疊的,e.g:
十二 console.time(name)/console.timeEnd(name)
咱們常常須要測試 js 函數的執行時間,可能咱們本身寫代碼在第1 條語句和
最後 1 條語句取當前時間相減。這組函數其實就實現了這樣的功能,time(name)根據 name 建立 1 個新
的計時器。timeEnd(name)中止給定name 的計時器,並顯示時間。e.g:
十三 console.profile(name)/console.profileEnd()
這組方法用於打開瀏覽器的分析器,用於分析這組函數之間的 js 執行狀況,
e.g:
注:firebuglite 不支持 profile 功能,上圖是 FireBug 的截圖,Chrome 支持 profile,但分析的內容不
同樣,感興趣的同窗能夠本身研究下。
十四 console.count([title])
count 方法用於統計當前代碼沒執行過多少次,title 參數能夠在次數前面輸出
額外的標題以幫助閱讀,e.g:
注: firebuglite 不支持 count 方法,上述代碼在 Chrome 中會打印 1000 次,顯示沒有 FireBug 那麼友好。
十五 console.exception(error-object)
exception 方法用於打印異常對象,與 log 打印不同是,except ion 還會打印
該異常調用的堆棧信息,e.g:
注:exception 方法是 FireBug 獨有的方法,Chrome 和 firebuglite 都不支持。
十六 console.table(data)
table 方法把data 對象用表格的方式顯示出來,這在顯示數組或者格式同樣的
JSON 對象的時候很是有用。enode
注:table 只支持 FireBug,並且是在 firebug1.6+版本後纔有。
總結:
Console 是幫助咱們學習和調試 JS的 1 個很是好工具,若是你之前沒用過,哪如今就開始用它吧。你
會發現它能幫你省不少開發時間的。express