console.trace
API 支持可选参数,输出的效果和 console.log
/ console.info
类似。但是除了输出参数指定的内容之外,还会连带将当前的调用堆栈一起输出。可以看 MDN 中给出的一个例子:
function foo() {
function bar() {
console.trace();
}
bar();
}
foo();
输出的结果类似:
bar
foo
<anonymous>
其中,<anonymous>
是因为 foo
函数是在 console 中直接运行的。当然,这个只能在调试阶段进行代码的检查。如果需要在线上环境,对可能出问题的地方收集调用堆栈信息,直接使用 console.trace
就不满足需求了。可以转而使用 Error 中的 stack 字段:
function foo() {
function bar() {
const error = new Error();
console.log(error.stack);
}
bar();
}
foo();
输出结果类似:
Error
at bar (<anonymous>:3:19)
at foo (<anonymous>:6:3)
at <anonymous>:9:1