在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)

输出如下:


js 怎么获取接口的 session_前端

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

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

输出如下:


js 怎么获取接口的 session_开发语言_02

实际上,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 之前无图标,如下图


js 怎么获取接口的 session_开发语言_03

FireFox:

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


js 怎么获取接口的 session_前端_04

Safari:

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


js 怎么获取接口的 session_i++_05

2. console.dir()

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

console.log()


js 怎么获取接口的 session_i++_06

console.dir()


js 怎么获取接口的 session_js 怎么获取接口的 session_07

对比两者,我们不难发现 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)

输出如下:


js 怎么获取接口的 session_前端_08

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,计时器开始于循环之前,结束于循环之后,输出循环执行时间。


js 怎么获取接口的 session_i++_09

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()


js 怎么获取接口的 session_开发语言_10

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

6. console.trace()

用来追踪函数的调用过程

function a () {
    console.trace()
}

function b () {
    a()
}

b()

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


js 怎么获取接口的 session_javascript_11

7. console.assert()

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


js 怎么获取接口的 session_javascript_12

8. console.count()

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

无label:

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


js 怎么获取接口的 session_开发语言_13

有label:

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


js 怎么获取接口的 session_i++_14

9. console.countReset()

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

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


js 怎么获取接口的 session_开发语言_15

10. console.memory

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

js 怎么获取接口的 session_js 怎么获取接口的 session_16

11. console.clear()

清空控制台。

js 怎么获取接口的 session_javascript_17