chrome console詳解

Console

console是瀏覽器開發(fā)者工具自帶的API,并不是JavaScript原生對象。

常規(guī)

以面板形式打開

要打開專用的 Console 面板,請執(zhí)行以下操作之一:<br />按 Ctrl+Shift+J (Windows / Linux) 或者 Cmd+Opt+J (Mac)。 如果 DevTools 已打開,則按 Console 按鈕。 打開 Console 面板時,Console 抽屜式導(dǎo)航欄將自動折疊。

以抽屜式導(dǎo)航欄形式打開

要以任何其他面板旁的抽屜式導(dǎo)航欄的形式打開控制臺,請執(zhí)行以下操作之一:<br />在 DevTools 處于聚焦?fàn)顟B(tài)時按 Esc。 按 Customize and control DevTools 按鈕,然后按 Show console。
show-console.png
show-console.png

消息堆疊

如果一條消息連續(xù)重復(fù),而不是在新行上輸出每一個消息實例,控制臺將“堆疊”消息并在左側(cè)外邊距顯示一個數(shù)字。<br />此數(shù)字表示該消息已重復(fù)的次數(shù)。
message-stacking.png
message-stacking.png

<br />如果您傾向于為每一個日志使用一個獨特的行條目,請在 DevTools 設(shè)置中啟用 Show timestamps。
show-timestamps.png
show-timestamps.png

其他設(shè)置

打開 DevTools 設(shè)置,轉(zhuǎn)至 General 標(biāo)簽,然后向下滾動到 Console 部分,查看更多控制臺設(shè)置。

Hide network messages
默認(rèn)情況下,控制臺將報告網(wǎng)絡(luò)問題。 啟用此設(shè)置將指示控制臺不顯示這些錯誤的日志。 例如,將不會記錄 404 和 500 系列錯誤。
Log XMLHttpRequests
確定控制臺是否記錄每一個 XMLHttpRequest。
Preserve log upon navigation
在頁面刷新或?qū)Ш綍r保留控制臺歷史記錄。
Show timestamps
在調(diào)用時向顯示的每條控制臺消息追加一個時間戳。 對于發(fā)生特定事件時的調(diào)試非常實用。 這會停用消息堆疊。
Autocomplete from history
在輸入時獲取歷史輸入中的內(nèi)容,自動填充。

側(cè)邊欄

單擊
showconsolesidebar.png
showconsolesidebar.png

可以顯示側(cè)邊欄,可以按種類過濾一些輸出。
sidebar.png
sidebar.png

<a name="8r1ZQ"></a>

按嚴(yán)重級別過濾內(nèi)容

DevTools為每種console.*方法分配一個嚴(yán)重級別。有4個級別:Verbose,Info, Warning,和Error。例如,console.log()在Info組中,而 console.error()在Error組中。<br />點擊 Default levels 下拉菜單來啟用或禁用Verbose,Info,Warning或 Error消息。
loglevels.png
loglevels.png

<a name="2hofi"></a>

通過URL過濾消息

鍵入url:后跟一個URL,以僅查看來自該URL的消息。鍵入url:DevTools 后,將顯示所有相關(guān)的URL。
urlfilter.png
urlfilter.png

<br />鍵入-url:以隱藏該URL中的消息。
negativeurlfilter.png
negativeurlfilter.png

<a name="T6Es0"></a>

console常用方法

<a name="consolelog"></a>

console.log

// 用于輸出普通信息
console.log("zzz")

console.warn

// 用于輸出警示信息
console.warn("zzz")

console.error

// 用于輸出錯誤信息
console.error("zzz")

上述幾種方法都支持printf的占位符格式

%s:字符串

console.log("%sgoogle","谷歌——")

%d or %i:整數(shù)

console.log("%d年%i月%d日",2020,1,1)

%f:浮點數(shù)

console.log("1÷2=%f",0.5)

%o or %O:對象

var dog = {};
dog.variety = "柯基";
dog.color = "黃色";
console.log("%o",dog)
console.log("%O",dog)
    
// %o、%O 都是用來輸出 Object 對象的,對普通的 Object 對象,兩者區(qū)別不大,但是打印dom節(jié)點時,結(jié)果完全不同;
// %o 格式成可展開的的DOM,像在開發(fā)者工具Element面板那樣可展開,等同于console.dirxml()
console.log('%o',document.body.firstElementChild);
// %O 像JS對象那樣訪問DOM元素,可查看DOM元素的屬性,等同于console.dir()
console.log('%O',document.body.firstElementChild);
// 另:%o 加和不加對輸出結(jié)果沒影響

%c:根據(jù)提供的css樣式格式化字符串

// 使用 %c 占位符時,對應(yīng)的后面的參數(shù)必須是 CSS 語句,用來對輸出內(nèi)容進(jìn)行 CSS 渲染;
console.log("%c微醫(yī)","color: #000; font-size: 20px; font-weight: 900; font-family:MicrosoftYaHei;");
為以上幾種方法加上統(tǒng)一的樣式
['log','info','warn','error'].forEach(item => {
    let print = console[item];
    console[item] = function() {
        print.call(console, '%c'+Array.prototype.slice.apply(arguments).join(' '), 'font-size: 16px;font-weight: bold;text-decoration: underline; color: #fff; padding: 100px; background: url(https://img1.gamersky.com/upimg/pic/2019/09/23/201909231900469272.jpg)')
    }
})
console.log("zzz")
console.warn("zzz")
console.error("zzz")

<a name="P5Zrc"></a>

console其他方法

<a name="consolegroup-consolegroupend"></a>

console.group & console.groupEnd

// 分組輸出
console.group('這是一個組')
    console.log('1')
    console.log('2')
    console.log('3')
console.groupEnd()

console.time & console.timeEnd

// 計算某段程序運行時間
console.time('time')
for(let i = 0; i < 10; i++){
    console.log(1)
}
console.timeEnd('time')

console.table

// 輸出表格
let obj = {
    test_1: 'ffff',
    test_2: '這是test',
    arr_1: [1,{a: 'arr_obj'}, 'string']
}
console.table(obj)
var arr= [ 
         { num: "1"},
         { num: "2"}, 
         { num: "3" }
    ];
console.table(arr);
var obj2= {
     a:{ num: "1"},
     b:{ num: "2"},
     c:{ num: "3" }
};
console.table(obj2);

<a name="consolecount"></a>

console.count

// 輸出代碼執(zhí)行次數(shù)
for (var i = 0; i < 5; i++) { 
    // 括號里可以傳參,輸出時會成為冒號前面的內(nèi)容
    console.count('count'); 
}
// 在函數(shù)中寫這個方法,可以記錄函數(shù)是第幾次執(zhí)行
//可以用這個方法重置計數(shù)
console.countReset('count');

<a name="consoleassert"></a>

console.assert

// 判斷一個表達(dá)式或變量是否為真
var i = 1;
console.assert(i);
var year = 2019;
console.assert(year == 2020);

$()

// 返回匹配指定CSS選擇器的所有DOM元素的引用
$("div")

monitorEvents()

// 第一個參數(shù)是要監(jiān)聽的對象。如果未提供第二個參數(shù),所有事件都會返回。要指定要監(jiān)聽的事件,傳遞一個字符串或字符串?dāng)?shù)組作為第二個參數(shù)
monitorEvents(document.body, "click")

unmonitorEvents()

// 停止監(jiān)聽對象上的事件
unmonitorEvents(document.body)

keys()

// keys()返回一個數(shù)組,其中包含屬于指定對象的屬性的鍵

values()

// values()返回一個數(shù)組,其中包含屬于指定對象的屬性的值

直接輸入元素的ID

// 可以直接輸出該DOM元素
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容