Chrome瀏覽器調試,console簡述


作為一個前端開發者,不可避免的需要進行各種各樣的調試。

在谷歌瀏覽器出來以前,火狐的firebug是特別有名的一款調試工具,不過自從谷歌瀏覽器誕生以來,其自帶的開發者工具足以媲美firebug,某種程度上甚至超越了firebug。

雖然這篇介紹谷歌調試工具,但是還是要說一句,火狐的調試工具依然強大。二者都是業界調試工具的佼佼者。

谷歌開發者工具功能豐富,包括代碼審查,樣式調整,性能優化以及其他更高級的功能,調試方式多種多樣,不一而足。

這里主要介紹控制台的console

打開控制台

Windows系統快捷鍵【三個】:

F12

Ctrl+shift+i

Ctrl+shift+j

鼠標操作1:如圖【是不是多余了?】

鼠標操作2:在網頁上任意位置右鍵,最后一個選項:檢查,如圖

打開后,可以看到這樣的界面

 

 上面的不同的單詞:Elements,Console,Source,Network等等,分別針對不同的功能面板。我們這里主要介紹Console面板。

上面的圖上一大片空白,就是console面板輸入區域。可以在這里直接輸入JavaScript代碼。網頁中的報錯信息,提示信息等也都會出現在這里。

console是瀏覽器開發者工具自帶的API,並不是JavaScript原生對象。不過目前所有主流的瀏覽器均支持。可以在js代碼中用console輸出信息。

現在我們在面板里面輸入console。

可以看到console對象有這么多方法。

先來看以下五個方法:

console.log

console.error

console.info

console.warn

console.debug
這五個方法是我們比較常用的方法,也算是比較直觀的方法。這幾個方法的區別就是輸出的結果的顏色不一樣,還有輸出結果前面的提示符號不同。具體如何,請按如下代碼測試,講log換成對應的info,warn,debug,error

關於這五個方法,有如下幾點:

1.都可以輸出任意類型的值,字符串,數值,對象,數組,函數;

console.log(100);
console.log("pelli");
console.log(function hh(){});
console.log([1,2,3]);
console.log({name:'pelli'});
console.log(null);
console.log(undefined);
console.log(true);

2.都可以有任意多個參數(65535個以內),可以運行以下代碼,查看效果。順便提一下,65535是一個特別的數字,有興趣可以百度一下;

var str = 'console.log("hello"';

for(var i = 0; i < 100000; i++){
    str = str + "," + i;
}

str += ');';
eval(str);

3.都可以用占位符進行格式化輸出,比如輸出帶樣式的字符串,輸出圖片等。

一共有四種占位符:

浮點:%f

字符:%c

整數:%d或%i

對象:%o

請看以下代碼:代碼中的log可以和warn,info,debug,error隨意互換

//輸出帶有樣式的文字
console.log("%c這是藍色的20號字","color:blue;font-size:20px;");
//輸出圖片
console.log("%c","background:url('http://www.baidu.com/img/tupian.jpg')");
//格式化輸出日期
console.log("今天是%i年%i月%i日",2016,05,04);
//輸出小數
console.log("%f是圓周率",3.141592653);
var obj = {
  name : 'pelli',
  age : 24
}
console.log("%o",obj);

除了console.log外,還有其他很多方法。上面的圖片中列出的是所有的方法。

 console.count();

這個方法是用來記錄該行所在的代碼是第幾次執行。一般寫在循環和函數中。每一次執行到這一行的時候,都會在控制台輸出一個數值----在前一個數值基礎上加一。有一個可選參數,可選參數是任意值(字符串,數字,對象,數組,函數,null,undefined,布爾值,正則表達式),參數會輸出在數字前面的冒號之前。

其輸出結果一定會有一個冒號,冒號后面緊緊跟着數字。

也就是說,如果沒有參數的話,會輸出一個冒號和一個數字。

在函數中寫這個方法,可以記錄該函數是第幾次被調用。

console.dir()

用於輸出一個對象。

console.dirxml()

輸出dom對象

console.clear()

清空控制台信息,執行該方法,會清空控制台中的所有之前的輸出信息

console.assert()

輸出斷言消息

console.assert(3 < 4,"該斷言是正確的斷言,所以不會有任何輸出");

console.assert(3 > 4,"這句話是斷言出錯后輸出的信息");

var a = 100;

console.assert(a%5===3,"斷言有兩個參數,第一個是必須參數,斷言語句,第二個參數是可選語句,斷言出錯后輸出的信息,如果斷言正確,則不輸出斷言");

console.trace()

跟蹤該函數調用鏈,會輸出該函數被哪些函數調用過。以下是谷歌瀏覽器效果。

格式化輸出數組或者對象:console.table()

console.table可以以表格形式輸出數組或者對象,最好的數組格式是一維數組,每個元素都是一個類json對象,最好的對象格式是類json對象,每個屬性的值都是相同元素個數的數組。

其他的是有關於性能方面的信息輸出。

輸出代碼執行的時間。

console.time()

console.timeEnd();

console.time()和console.timeEnd()通常會一起使用,console.time()表示計時開始,console.timeEnd()表示計時結束,二者傳遞相同的參數,用以表示同一個計時標記

二者可以嵌套使用。

 

顯示代碼執行過程中性能的情況

console.profile()

console.profileEnd()

 

通常這兩個方法也是一起使用,二者都有一個可選的相同參數,表示記錄標記。

輸出的結果會再控制台,profile 欄顯示。

分組顯示:

console.group()

console.groupEnd()

console.group("kill");
console.log("hello");
console.error("pgp");
console.info("llllll",4545);
console.groupEnd("kill");

console.group("oo");
var c = {"name" : 'fff',"age" : 23};
console.dir(c);
console.info("hah");
console.groupEnd("oo");

效果如圖:

 

以上兩個方法可以將輸出的信息分組顯示;兒者都有一個可選的參數,表示分組標記。可以嵌套使用。

總結:

提示信息:console.info()

警告提示:console.warn()

報錯提示:console.error()

基本輸出:console.log();

調試輸出:console.debug()

代碼跟蹤:console.trace()

代碼執行次數統計:console.count()

對象輸出:console.dir()

輸出DOM節點:console.dirxml()

輸出代碼執行時間:console.time(),console.timeEnd()

輸出代碼細節:console.profile(),console.profileEnd()

分組輸出信息:console.group(),console.groupEnd()

格式化輸出數組或對象:console.table()

清空控制台:console.clear()

 

以上是對於控制台console對象的簡單介紹。

由於本人技術水平有限,對於不完善的地方,還望見諒,歡迎大家留言交流。本人QQ:2653807423。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM