偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

十個(gè)很少人知道的 JavaScript 控制臺(tái)方法

開(kāi)發(fā) 前端
您肯定聽(tīng)說(shuō)過(guò) console.log() 并且可能一直在使用它。它非常流行,像 Visual Studio Intellicode 這樣的工具通常會(huì)在 IDE 中輸入時(shí)在任何其他控制臺(tái)方法之前推薦它。

您肯定聽(tīng)說(shuō)過(guò) console.log() 并且可能一直在使用它。它非常流行,像 Visual Studio Intellicode 這樣的工具通常會(huì)在 IDE 中輸入時(shí)在任何其他控制臺(tái)方法之前推薦它:

圖片

在今天這篇文章中,我們將探討一些最有用的控制臺(tái)方法及其在數(shù)據(jù)可視化、調(diào)試等方面的用途。

1.table()

當(dāng)您需要直觀地查看代碼中可以以表格形式表示的一組對(duì)象(如對(duì)象數(shù)組)時(shí),console.table() 方法會(huì)派上用場(chǎng)。以這個(gè)汽車(chē)清單為例:

const cars = [
{
color: 'red',
age: 4,
maxSpeed: 120,
},
{
color: 'blue',
age: 2,
maxSpeed: 100,
},
{
color: 'yellow',
age: 3,
maxSpeed: 160,
},
];

您將如何在控制臺(tái)中檢查它們?console.log() 是一個(gè)典型的方法:

console.log(cars);

在 Chrome 開(kāi)發(fā)人員控制臺(tái)中,我們可以檢查我們記錄的對(duì)象的各種屬性,以及我們想要的任意多的層次結(jié)構(gòu)。

我們可以在 Node.js 終端中查看屬性并進(jìn)行著色:

這是一種可接受的方法,但 console.table() 方法提供了一種更優(yōu)雅的替代方法:

console.table(cars);

顧名思義,它以易于理解的表格格式呈現(xiàn)數(shù)據(jù),如電子表格。

table() 也適用于數(shù)組數(shù)組:

const arr = [
[1, 3, 5],
[2, 4, 6],
[10, 20, 30],
];
console.table(arr);

圖片

2. assert()

非常適合調(diào)試目的,console.assert() 接受斷言并在斷言為假時(shí)將錯(cuò)誤消息寫(xiě)入控制臺(tái)。但如果這是true,什么也不會(huì)發(fā)生。

const num = 13;
console.assert(num > 10, 'Number must be greater than 10');
console.assert(num > 20, 'Number must be greater than 20');

第一個(gè)斷言通過(guò),因?yàn)?num 大于 10,所以控制臺(tái)中只顯示第二個(gè):

圖片

3. trace()

console.trace() 幫助您在調(diào)用它的位置輸出當(dāng)前堆棧跟蹤。例如:

function a() {
b();
}
function b() {
c();
}
function c() {
console.trace();
}
a();

4.error()

error() 可能是第二流行的控制臺(tái)方法。在 Chrome 控制臺(tái)中,它以獨(dú)特的紅色顯示錯(cuò)誤消息。

console.error('This is an error message.');
console.log('This is a log message.');

你不會(huì)在 Node.js 中獲得這種顏色分離:

但是,消息在內(nèi)部寫(xiě)入不同的位置。console.error() 寫(xiě)入 stderr 流,而 console.log() 寫(xiě)入 stdout 流。您可以使用 process.stderr 和 process.stdout 訪問(wèn)這些流。這對(duì)于將錯(cuò)誤消息和信息性消息重定向到不同的文件很有用,就像我們?cè)谙旅娴拇a示例中所做的那樣。

const fs = require('fs');
const errorFs = fs.createWriteStream('./error-log.txt');
process.stderr.write = errorFs.write.bind(errorFs);
const infoFs = fs.createWriteStream('./info-log.txt');
process.stdout.write = infoFs.write.bind(infoFs);
console.error('This is an error message.');
console.log('This is a log message.');

運(yùn)行此代碼時(shí),傳遞給 error() 和 log() 的消息將輸出到相應(yīng)的文件,而不是控制臺(tái)。

5.warn()

console.warn() 在 Chrome 控制臺(tái)中輸出一條黃色消息,表示警告。

console.warn('This is a warning message');

圖片

在 Node.js 中,消息被寫(xiě)入 stderr 流,如 console.error()。

6. count() 和 countReset()

console.count() 記錄當(dāng)前調(diào)用 count() 的次數(shù)。另一個(gè)有用的調(diào)試工具。

function shout(message) {
console.count();
return message.toUpperCase() + '!!!';
}
shout('hey');
shout('hi');
shout('hello');

顯示的標(biāo)簽是默認(rèn)的,因?yàn)槲覀儧](méi)有指定標(biāo)簽。我們可以通過(guò)將字符串參數(shù)傳遞給 count() 來(lái)做到這一點(diǎn)。

function shout(message) {
console.count(message);
return message.toUpperCase() + '!!!';
}
shout('hey');
shout('hi');
shout('hello');
shout('hi');
shout('hi');
shout('hello');

圖片

現(xiàn)在我們對(duì)每條消息都有不同的計(jì)數(shù)。

countReset() 方法將標(biāo)簽的計(jì)數(shù)設(shè)置回零。

function shout(message) {
console.count(message);
return message.toUpperCase() + '!!!';
}
shout('hi');
shout('hello');
shout('hi');
shout('hi');
shout('hello');
console.countReset('hi');
shout('hi');

7. time()、timeEnd() 和 timeLog()

我們可以一起使用這些方法來(lái)測(cè)量我們程序中的特定操作需要多長(zhǎng)時(shí)間。


const arr = [...Array(10)];
const doubles1 = [];
console.time('for of');
let i = 0;
for (; i < 1000; i++) {
for (const item of arr);
}
console.timeLog('for of');
for (; i < 1000000; i++) {
for (const item of arr);
}
console.timeEnd('for of');
console.time('forEach');
i = 0;
for (; i < 1000; i++) {
arr.forEach(() => {});
}
console.timeLog('forEach');
for (; i < 1000000; i++) {
arr.forEach(() => {});
}
console.timeEnd('forEach');

圖片

這里我們對(duì) for of 和 forEach 循環(huán)進(jìn)行性能比較。time() 為傳遞給它的標(biāo)簽指定的操作啟動(dòng)計(jì)時(shí)器。timeLog() 在不停止計(jì)時(shí)器的情況下記錄當(dāng)前持續(xù)時(shí)間,我們用它來(lái)顯示一千次迭代后經(jīng)過(guò)的時(shí)間。timeEnd() 記錄當(dāng)前持續(xù)時(shí)間并停止計(jì)時(shí)器。我們?cè)诮?jīng)過(guò)一百萬(wàn)次迭代后調(diào)用它。

看起來(lái) forEach() 比 for of 快。

8.clear()

console.clear() 通過(guò)清除日志來(lái)消除控制臺(tái)的混亂。

console.log('A log message.');
console.clear();

圖片

9. group()、groupCollapsed() 和 groupEnd()

console.group() 向其后的任何控制臺(tái)消息添加一定程度的縮進(jìn)。console.groupEnd() 將縮進(jìn)重置為調(diào)用前面的 console.group() 之前的級(jí)別。

console.log('This is the outer level');
console.group();
console.log('Level 2');
console.group();
console.log('Level 3');
console.warn('More of level 3');
console.groupEnd();
console.log('Back to level 2');
console.groupEnd();
console.log('Back to the outer level');

圖片

console.groupCollapsed() 創(chuàng)建一個(gè)類(lèi)似于 console.group() 的組,但是該組會(huì)折疊,直到用戶(hù)使用旁邊的顯示按鈕展開(kāi)它。

console.log('This is the outer level');
console.group();
console.log('Level 2');
console.groupCollapsed();
console.log('Level 3 ');
console.warn('More of level 3');
console.groupEnd();
console.log('Back to level 2');
console.groupEnd();
console.log('Back to the outer level');

圖片

10.dir()

console.dir() 的工作方式類(lèi)似于 console.log(),除了記錄 HTMLElements。console.log() 將 HTMLElement 記錄為我們可以在控制臺(tái)中遍歷的 HTML:

圖片

但是 console.dir() 會(huì)將其記錄為一個(gè)對(duì)象,顯示一個(gè)交互式屬性列表:

圖片

結(jié)論

正如您在本文中看到的,除了 console.log() 之外,還有許多控制臺(tái)方法。其中一些只是在控制臺(tái) UI 中使用顏色和更好的可視化來(lái)增添趣味,而另一些則可以作為調(diào)試和性能測(cè)試的強(qiáng)大工具。

今天內(nèi)容就先分享到這里,希望對(duì)你有用,感謝閱讀。

責(zé)任編輯:華軒 來(lái)源: web前端開(kāi)發(fā)
相關(guān)推薦

2023-09-06 07:22:48

控制臺(tái)UI工具

2022-09-27 14:36:57

JavaScrip數(shù)組開(kāi)發(fā)

2022-06-08 10:42:34

ReduceJavaScript技巧

2022-10-20 15:12:43

JavaScript技巧開(kāi)發(fā)

2022-11-25 14:55:43

JavaScriptweb應(yīng)用程序

2011-07-11 15:52:47

RCWindows

2023-12-15 10:42:05

2023-10-16 07:55:15

JavaScript對(duì)象技巧

2025-03-19 09:46:45

2024-09-11 16:21:09

2023-05-11 16:29:39

Javascript開(kāi)發(fā)前端

2011-06-08 10:11:25

JavaScript

2025-04-30 07:21:47

2011-07-26 18:13:53

控制臺(tái)

2019-10-30 12:24:57

網(wǎng)絡(luò)安全安全風(fēng)險(xiǎn)網(wǎng)絡(luò)攻擊

2024-01-12 13:27:07

AWS用法S3

2022-03-30 08:40:00

JavaScript控制臺(tái)

2024-04-24 14:52:26

JavaScriptWeb 開(kāi)發(fā)

2024-09-30 10:05:00

2013-11-15 13:22:22

瀏覽器JavaScript
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)