js中console的使用

本文详细介绍了JavaScript中console对象的各种强大功能,包括log的基本用法、dir对象的结构展示、table的复合数据展示、计时工具的使用以及调试辅助方法。掌握这些技巧能提升开发者的工作效率。
摘要由CSDN通过智能技术生成

在javascript中,我们常用 console.log() 来输出信息,然而实际上console还有许多其他方法和属性,如console.dir()、console.time()、console.timeEnd()等,本文将对此进行详细介绍。

示例运行环境:Chrome 92

1. console.log()、console.info()、console.debug()、console.warn() 与 console.error()

先来说说console.log(),console.log() 用来在控制台输出一串信息,常用方法如下

(1)直接输出一串信息

const data1 = 1
const data2 = { a: 1 }
console.log(data1, data2)

输出如下:

image-20220227173002326

(2)使用 C 语言 printf() 风格的占位符,不过其支持的占位符种类较少,只支持字符串(%s)、整数(%d或%i)、浮点数(%f)和对象(%o)

const data2 = { a: 1 }
console.log('data2 is %o', data2)

输出如下:

image-20220227173421821

实际上,console.info()、console.debug()、console.warn() 及 console.error() 与 console.log 的用法一致,只是用来表示的信息种类不同,不同环境下,上述五个函数所打印出的信息,在控制台的显示是不一致的,举例如下

console.log('log')
console.info('info')
console.debug('debug')
console.warn('warn')
console.error('error')

Chrome:

不支持console.debug(),info 与 log 之前无图标,如下图

image-20220227171216315

FireFox:

不支持console.warn(),info 之前有图标

image-20220227171528432

Safari:

全部支持,不同的方法对应不同的图标

image-20220227172015450

2. console.dir()

在控制台中显示指定JavaScript对象的属性,并通过类似文件树样式的交互列表显示。这样说可能有些抽象,我们不妨来做个对比,分别用 console.log() 和 console.dir() 来输出 document 对象。

console.log()

image-20220227181001987

console.dir()

image-20220227180909368

对比两者,我们不难发现 console.dir() 将document以类似树的形式进行组织,清晰地显示了document的结构。

3. console.table()

将复合类型的数据转为表格显示。

const arr= [ 
  { num: "1"},
  { num: "2"}, 
  { num: "3" }
]
console.table(arr)

const obj= {
  a:{ num: "1"},
  b:{ num: "2"},
  c:{ num: "3" }
}
console.table(obj)

输出如下:

image-20220227182155267

4. console.time() 、console.timeEnd()、console.timeLog()

console.time() 与 console.timeEnd() 需搭配使用,用来计算一段程序的运行时间。

console.time(timerName):计时器开始。

console.timeEnd(timerName):计时器结束,打印总时间。

console.timeLog(timerName): 计时器已开始时间。

其中 timerName 表示计时器的名称。

console.time(timer)
for (let i = 0; i < 5; i++) {
    console.timeLog(timer)
}
console.timeEnd(timer)

上述代码,定义了一个计时器timer,计时器开始于循环之前,结束于循环之后,输出循环执行时间。

image-20220227192107619

5. console.group()、 console.groupEnd() 与 console.groupCollapsed()

一般的 console.log() 方法的输出没有层级关系,使用console.group()可对输出分层,使得输出的逻辑结构更清晰。

console.group():分层开始。

console.groupEnd():分层结束。

console.groupCollapsed(): 折叠分层。

console.group("1")
console.log("1-1")
console.log("1-2")
console.log("1-3")
console.groupEnd()
console.groupCollapsed("2")
console.log("2-1")
console.log("2-2")
console.log("2-3")
console.groupEnd()
image-20220227190440868

如图:使用 console.groupCollapse() 代替 console.group(),则默认折叠分层。

6. console.trace()

用来追踪函数的调用过程

function a () {
    console.trace()
}

function b () {
    a()
}

b()

上述代码中,执行b函数,b函数调用a函数,那么,在a函数中就可用console.trace()追踪完整调用过程

image-20220227174419227

7. console.assert()

assert方法接受两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果。

image-20220227182557383

8. console.count()

输出 count() 被调用的次数。此函数接受一个可选参数 label。

无label:

for (let i = 0; i < 5; i++) {
  console.count()
}
image-20220227184506676

有label:

for (let i = 0; i < 5; i++) {
  console.count('label')
}
image-20220227184550010

9. console.countReset()

for (let i = 0; i < 5; i++) {
  console.count('label')
}
console.countReset('label')
console.count('label')

重置计数器。此函数有一个可选参数 label。与console.count()搭配使用

image-20220227185203920

10. console.memory

用于显示此刻使用的内存信息。(依赖浏览器环境,如 Firefox 中无此属性) image-20220227182840763

11. console.clear()

清空控制台。

image-20220227184015903

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值