利用 Cosole 来学习、调试JavaScrip
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
一? 什么是 Console?
Console 是用于顯示 JS和 DOM 對象信息的單獨窗口。并且向 JS 中注入1個 Console 對象,使用該對象
可以輸出信息到 Console 窗口中。?
?
二? 什么瀏覽器支持 Console?
很多人可能都知道 Chrome 和 FireFox(FireBug)中都支持 Console。而其他瀏覽器都支?
持不好。比如 IE8 自帶的開發(fā)工具雖然支持 Console,但功能比較單調(diào),顯示對象的時候都是顯示
[Object,Object],而且不能點擊查看對象里面的屬性。IE6、IE7 雖然可以安裝 Developer Toolbar,但也
不支持 console。Safari、Opera 都支持 Console,但使用上都沒有 FireBug和 Chrome 的方便。?
? 現(xiàn)在firebug推出了 firebuglite工具,可以讓所有瀏覽器都支持Console功能,而且使用上和FireBug
幾乎一樣。詳見?http://getfirebug.com/firebuglite?
? 后面的所有 demo 除特別說明外,都是使用 firebuglite在 IE8 下的測試截圖。?
?
三? 為什么不直接使用 alert 或自己寫的 log?
/*編程技術*/? 作者? 熊星?
使用 alert 不是一樣可以顯示信息,調(diào)試程序嗎?alert 彈出窗口會中斷程序,?
如果要在循環(huán)中顯示信息,手點擊關閉窗口都累死。而且 alert 顯示對象永遠顯示為[object ]。?
? 自己寫的 log 雖然可以顯示一些 object 信息,但很多功能支持都沒有 console 好,看完后面 console
的介紹就知道了。?
?
四? Console.log(object[, object, ...])?
Console.log 是最簡單輸出信息到 console 窗口的方法,支持多個參數(shù),該方法會把?
這些參數(shù)組合在一起顯示,e.g:?
?
?
Log 方法第一個參數(shù)支持類似 C 語言 printf 字符串替換模式,比如上面的列子可以這樣寫:?
?
Log 支持下面幾種替換模式:?
%s? 代替字符串?
%d? 代替整數(shù)?
%f? 代替浮點值?
%o? 代替 Object?
?
五? console.debug,info,warn,error?
這 4 種方法與 log 方法使用一模一樣,只是顯示的圖標和文字顏色不一樣,e.g
六? 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 方法可以查看當前函數(shù)的調(diào)用堆棧信息,即當前函數(shù)是如何調(diào)用的,e.g:?
十一? console.group(object[, object, ...]), groupCollapsed, groupEnd?
這 3 個函數(shù)用于把 log 等輸出的信息進行分組,方便閱讀查看。groupCollapsed?
??? 方法與 group 方法一樣,只是顯示的分組默認是折疊的,e.g:?
?
?十二? console.time(name)/console.timeEnd(name)?
我們經(jīng)常需要測試 js 函數(shù)的執(zhí)行時間,可能我們自己寫代碼在第1 條語句和?
最后 1 條語句取當前時間相減。這組函數(shù)其實就實現(xiàn)了這樣的功能,time(name)根據(jù) name 創(chuàng)建 1 個新
的計時器。timeEnd(name)停止給定name 的計時器,并顯示時間。e.g:?
十三? console.profile(name)/console.profileEnd()?
這組方法用于打開瀏覽器的分析器,用于分析這組函數(shù)之間的 js 執(zhí)行情況,?
e.g:?
?
?
?
注:firebuglite 不支持 profile 功能,上圖是 FireBug 的截圖,Chrome 支持 profile,但分析的內(nèi)容不
一樣,感興趣的同學可以自己研究下。?
?
十四? console.count([title])?
count 方法用于統(tǒng)計當前代碼沒執(zhí)行過多少次,title 參數(shù)可以在次數(shù)前面輸出?
額外的標題以幫助閱讀,e.g:?
注: firebuglite 不支持 count 方法,上述代碼在 Chrome 中會打印 1000 次,顯示沒有 FireBug 那么友好。?
?
十五? console.exception(error-object)?
exception 方法用于打印異常對象,與 log 打印不一樣是,except ion 還會打印?
該異常調(diào)用的堆棧信息,e.g:?
注:exception 方法是 FireBug 獨有的方法,Chrome 和 firebuglite 都不支持。?
?
十六? console.table(data)?
table 方法把data 對象用表格的方式顯示出來,這在顯示數(shù)組或者格式一樣的?
JSON 對象的時候非常有用。e
注:table 只支持 FireBug,而且是在 firebug1.6+版本后才有。?
?
總結:?
? Console 是幫助我們學習和調(diào)試 JS的 1 個非常好工具,如果你以前沒用過,哪現(xiàn)在就開始用它吧。你
會發(fā)現(xiàn)它能幫你省很多開發(fā)時間的。
轉載于:https://my.oschina.net/leeming/blog/34278
總結
以上是生活随笔為你收集整理的利用 Cosole 来学习、调试JavaScrip的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL基本语句语法释义
- 下一篇: 在Linux服务器之间迁移帐号信息