javascript調(diào)試說明
更新時間:2010年06月07日 23:31:13 作者:
自從AJAX崛起后,javascript的程序越來越龐大,不得不考慮到各種測試。
以前javascript對于IO的支持很弱,不能寫入相應(yīng)的文本文件中,而且異常對象Error也不統(tǒng)一,無法打印詳細的堆棧。自定義異常對象是個非常不討好的方法,因為通常我們只看到其message屬性,再者,其他自定義屬性需要用最慢的for...in循環(huán)遍歷出來。這時沒有辦法了,我們只有求助于瀏覽器的各種私有實現(xiàn),如firefox就有console.log。下面是console對象的方法列表,關(guān)于firebug更詳細的使用可見這篇文章。
firebug就自不多說了,IE8也有console.log,不過這需要按下F12,進入調(diào)試模式時才有效,不然報錯。為了不報錯,平時我們應(yīng)該實現(xiàn)一個空對象來覆蓋它。
if (!window.console ){
window.console = {};
var methods = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"],
noop = function(){}
for (var i = 0,method;method=methods[i++];)
window.console[method] = noop;
}
大概opera9.5x之后吧,多了一個叫Dragonfly的東東。顯然,它無法與firebug花樣繁多的日志輸出相比,它只提供了一個opera.postError方法。
if (window.opera && opera.postError) {
opera.postError(message);
}
safari也有console.log,它是基于其Web Inspector組件,感覺與firefox差不多,但我不是水果黨,不知道其方法有沒有firebug那么多……對于瀏覽器新貴chrome,現(xiàn)在我們可以在其擴展程序搜索安裝firebug的chrome版本。
函數(shù) | 說明 |
---|---|
log(obj[, obj, ...]) | 向控制臺輸出一個信息??梢暂斎攵鄠€參數(shù),輸出將已空格分隔各參數(shù)輸出。 第一參數(shù)可以包含格式化文本,例如: log(‘這里有%d個%s',count,apple); 字符串格式: %s:字符串。 %d, %i:數(shù)字。 %f: 浮點數(shù)。 %o -超鏈接對象。 |
debug(obj[, obj, ...]) | 向控制臺輸出一個信息,信息包含一個超鏈接鏈接到輸出位置。 |
info(obj[, obj, ...]) | 向控制臺輸出一個帶信息圖標(biāo)和背景顏色的信息,信息包含一個超鏈接鏈接到輸出位置。 |
warn(obj[, obj, ...]) | 向控制臺輸出一個帶警告圖標(biāo)和背景顏色的信息,信息包含一個超鏈接鏈接到輸出位置。 |
error(obj[, obj, ...]) | 向控制臺輸出一個帶錯誤圖標(biāo)和背景顏色的信息,信息包含一個超鏈接鏈接到輸出位置。 |
assert(expression[, obj, ...]) | 測試一個表示是否為true,如果為false,提交一個例外信息到控制臺。 |
dir(obj) | 列出對象的所有屬性。 |
dirxml(node) | 列出HTML或XML Element的XML源樹。 |
trace() | 輸出堆棧的調(diào)用入口。 |
group(obj[, obj, ...]) | 將信息分組再輸出到控制臺。通過groupEnd()結(jié)束分組。 |
groupEnd() | 結(jié)束分組輸出。 |
time(name) | 創(chuàng)建一個名稱為name的計時器,計算代碼的執(zhí)行時間,調(diào)用timeEnd(name)停止計時器并輸出執(zhí)行時間。 |
timeEnd(name) | 停止名稱為name的計時器并輸出執(zhí)行時間。 |
profile([title]) | 開始對腳本進行性能測試,title為測試標(biāo)題。 |
profileEnd() | 結(jié)束性能測試。 |
count([title]) | 計算代碼的執(zhí)行次數(shù)。titile作為輸出標(biāo)題。 |
firebug就自不多說了,IE8也有console.log,不過這需要按下F12,進入調(diào)試模式時才有效,不然報錯。為了不報錯,平時我們應(yīng)該實現(xiàn)一個空對象來覆蓋它。
復(fù)制代碼 代碼如下:
if (!window.console ){
window.console = {};
var methods = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"],
noop = function(){}
for (var i = 0,method;method=methods[i++];)
window.console[method] = noop;
}
大概opera9.5x之后吧,多了一個叫Dragonfly的東東。顯然,它無法與firebug花樣繁多的日志輸出相比,它只提供了一個opera.postError方法。
復(fù)制代碼 代碼如下:
if (window.opera && opera.postError) {
opera.postError(message);
}
safari也有console.log,它是基于其Web Inspector組件,感覺與firefox差不多,但我不是水果黨,不知道其方法有沒有firebug那么多……對于瀏覽器新貴chrome,現(xiàn)在我們可以在其擴展程序搜索安裝firebug的chrome版本。
相關(guān)文章
Bootstrap編寫一個兼容主流瀏覽器的受眾門戶式風(fēng)格頁面
這篇文章主要介紹了Bootstrap編寫一個兼容IE8、谷歌等主流瀏覽器的受眾門戶式風(fēng)格頁面,感興趣的小伙伴們可以參考一下2016-07-07JavaScript轉(zhuǎn)換與解析JSON方法實例詳解
這篇文章主要介紹了JavaScript轉(zhuǎn)換與解析JSON方法,實例分析了JavaScript解析json的技巧,并附帶分析了jQuery解析與轉(zhuǎn)換json的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11layui點擊左側(cè)導(dǎo)航欄,實現(xiàn)不刷新整個頁面,只刷新局部的方法
今天小編就為大家分享一篇layui點擊左側(cè)導(dǎo)航欄,實現(xiàn)不刷新整個頁面,只刷新局部的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09js點擊返回跳轉(zhuǎn)到指定頁面實現(xiàn)過程
這篇文章主要為大家詳細介紹了js點擊返回跳轉(zhuǎn)到指定頁面實現(xiàn)過程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-04-04利用JavaScript創(chuàng)建一個兔年春節(jié)倒數(shù)計時器
這篇文章主要介紹了如何利用JavaScript創(chuàng)建一個兔年春節(jié)倒數(shù)計時器,文中的示例代碼講解詳細,對我們學(xué)習(xí)JavaScript有一定的幫助,需要的可以參考一下2023-01-01