javascript - 为什么 console.log(error_object) 输出错误消息而不是其键/值对和方法?

标签 javascript try-catch

如果我 console.log 一个对象,它会输出所有键/值对及其方法。

const obj = {
    name: "Mike",
    add : function (a, b){
       return a + b
    }
}

console.log(obj)

但是 try...catch block 中的错误对象console.log(err) 输出类似“引用错误:变量未定义”的消息”

try {
   variable
}
catch(err) {
   console.log(err)
}

为什么它输出消息,而不是它的键/值对和方法?

最佳答案

console.log() 的参数到控制台消息的底层转换不必总是打印出对象的键值对,并且因环境而异。

例如,console NodeJS 中的对象使用 util.format()执行转换,然后调用 util.inspect()格式化对象,它以与普通对象不同的方式对待 Error 对象。不过,我不确定其他浏览器的具体情况,但它们可能也会以不同的方式处理 Error 对象,以帮助调试。

这能回答你的问题吗?

关于javascript - 为什么 console.log(error_object) 输出错误消息而不是其键/值对和方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76938249/

相关文章:

javascript - JavaScript 中的 HTML 标记

javascript - Ace 编辑器 - 带有双字母的快捷方式

javascript - 如何让每个 dom 分别响应 mouseenter()?

c# - 使用 Try-Catch 处理看到的错误,不好吗?

java - 如何将字符串转换为 float 并避免在 java 中使用 try/catch?

r - R 中具有复杂函数和 plyr 的 tryCatch

javascript - IE6 : JavaScript hyperlink not working

javascript - 将 url 重定向到某个 div

Javascript无法在 map 函数中捕获错误

java - try catch会降低效率吗?