除了 console.log() 之外,还有其他方法可以在 JavaScript 中使用控制台

2025-05-24

除了 console.log() 之外,还有其他方法可以在 JavaScript 中使用控制台

更新:应部分用户的请求,我新增了一些设置控制台输出样式的方法。请查看Facebook控制台,了解样式设置的实际效果。

使用 JavaScript 时,最先接触到的调试工具之一就是控制台。然而,我们大多数人只学习了如何使用 console.log() 来记录变量和字符串,但控制台对象上还有许多其他方法可以用来更有效地调试代码。

控制台.assert()

当第一个参数为假时才会向控制台写入消息。

console.assert()当你想有条件地打印错误消息时很有用

let a = 3

let b = 4

let c = 5

function isOdd(num){
  console.assert((num % 2 === 0), "Number is odd")
}

isOdd(a) // output: Number is odd

isOdd(b) // output:

isOdd(c) // output: Number is odd
Enter fullscreen mode Exit fullscreen mode

控制台.error()

将向控制台写入一条错误消息

console.error()当你想指出代码中存在破译错误时,这对于测试目的非常有用

console.error('There was an error with your code')
Enter fullscreen mode Exit fullscreen mode

控制台中的错误消息的屏幕截图

控制台.warn()

将会向控制台输出警告信息

console.warn()当你想指出代码中存在非破坏性错误时,这对于测试目的很有用

console.warn("Make sure to parse your numbers to integers")
Enter fullscreen mode Exit fullscreen mode

控制台中的警告消息的屏幕截图

console.group() 和 console.groupEnd()

将在控制台中创建一组消息。必须使用console.groupEnd()来指示组的结束。

console.group()当您需要将一组邮件集中保存时,此功能非常有用。如有需要,您还可以为群组添加标签。

// without label
console.log('Hello World!')
console.group()
console.log("I'm the first message")
console.log("I'm the second message")
console.log("I'm the third message")
console.groupEnd()

// with label
console.log('Hello World Pt.2!')
console.group('Group Label')
console.log("I'm a message")
console.log("I'm another message")
console.log("I'm also a message")
console.groupEnd()
Enter fullscreen mode Exit fullscreen mode

控制台中一组不带标签的消息的屏幕截图

控制台中一组不带标签的消息的屏幕截图

控制台.table()

将在控制台视图中打印一个表格。

console.table()是我最喜欢的应用程序之一,因为它可以让您轻松地以有组织的方式查看一组数据。

此方法还将接受两个参数,tableData并且tableColumns.tableData是必需的,应该是数组或对象,而tabkeColumns是可选的,是一个包含要显示的列名称的数组。

// passing in an object
console.table({ firstname : "John", lastname : "Doe" })

// passing in an array
console.table(["Kobe", "Lebron", "Shaq"])

// passing in an array of objects
let city1 = { name: "Salt Lake City", state: "UT" }
let city2 = { name: "San Diego", state: "CA" }
let city3 = { name: "Houston", state: "TX" }

console.table([city1, city2, city3])

// specify we only want "name" column shown 
let city1 = { name: "Salt Lake City", state: "UT" }
let city2 = { name: "San Diego", state: "CA" }
let city3 = { name: "Houston", state: "TX" }

console.table([city1, city2, city3], ["name"])
Enter fullscreen mode Exit fullscreen mode

控制台内部表格的屏幕截图

控制台中的数据表的屏幕截图

控制台中的数据表的屏幕截图

控制台中的数据表的屏幕截图

console.time() 和 console.timeEnd()

console.time()将在控制台视图中启动计时器,同时console.timeEnd()停止计时器并在控制台视图中显示结果

当你想查看代码运行时间时,这两个函数非常有用。你还可以传入一个可选的标签参数。

// without label
console.time()

for(let i=0; i<100000; i++){
// some code here
}

console.timeEnd()

// with label
console.time("Timer1: ")

for(let i=0; i<100000; i++){
// some code here
}

console.timeEnd("Timer1: ")
Enter fullscreen mode Exit fullscreen mode

控制台中计时器结果的屏幕截图,无标签

控制台中带有标签的计时器结果的屏幕截图

控制台.trace()

将记录堆栈跟踪以显示代码在某个点如何结束

console.trace()当你想查看函数调用时的跟踪信息时,它非常有用。你还可以传递一个可选的标签参数

function myHOF(){
  myCallback()
}

function myCallback(){
  console.trace()
}

myHOF()
Enter fullscreen mode Exit fullscreen mode

控制台中的跟踪堆栈的屏幕截图

格式说明符(设置输出样式)

控制台允许您指定要应用于输出的格式类型。所有格式说明符均以 % 开头,后跟一个字母。

我提供了一个表格,其中包含您可以使用的所有不同格式说明符,但对于本文,我将向您展示如何添加 CSS 样式。

说明符 输出
%s 将值格式化为字符串
%i 或 %d 将值格式化为整数
%f 将值格式化为浮点数
%o 将值格式化为可扩展的 DOM 元素
%氧 将值格式化为可扩展的 JS 对象
%c 将 CSS 样式规则应用于输出字符串
console.log("%c Here is some really large, red text", "font-size: 58px; color: red;")

console.log("%c I'm Serif and Blue", "color: blue; font-family: serif; font-size: 32px")
Enter fullscreen mode Exit fullscreen mode

带有样式的控制台输出的屏幕截图

文章来源:https://dev.to/developer_buddy/there-s-more-than-just-console-log-other-useful-ways-to-use-the-console-in-javascript-17l8
PREV
5 个我几乎每天都会用到的被严重低估的免费工具/资源。(作为一名前端开发者)
NEXT
PWA - 为什么该用,又为什么不用?感谢阅读,我是 Tharun Shiv,又名开发者 Tharun。