You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何控制台中new Error()与new Error().toString()输出结果不一致?

Error对象的控制台特殊显示规则

是的,Error对象确实有专属的控制台显示逻辑,和普通对象、Date这类内置对象的处理方式不一样,具体差异和原因如下:

  • 显示差异对比

    • 直接在控制台输入new Error('测试错误'),会显示类似Error: 测试错误的内容,同时展开后能看到name、message、stack等完整属性;但调用new Error('测试错误').toString(),返回的只有Error: 测试错误,没有栈追踪信息。
    • 而new Date()的控制台输出和new Date().toString()完全一致,因为Date对象没有特殊处理,控制台直接调用其toString()方法展示结果。
  • 特殊处理的原因
    浏览器和Node.js的控制台对Error对象做了调试友好的优化:默认显示时优先展示开发者最关心的错误名称和消息,同时保留展开查看完整对象属性(尤其是栈追踪)的能力,方便快速定位问题。而toString()方法只是Error对象的标准字符串化实现,仅返回name: message的基础格式,不包含调试相关的栈信息。

内容的提问来源于stack exchange,提问作者s123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 16:02:01