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

为何{age:15}toString()在JavaScript中不报错却返回'[object Undefined]'?

解析 {age:15}toString() 的执行逻辑

先直接拆解这段代码的解析过程:

  • 首先,{age:15}不是对象字面量,JavaScript引擎会把它解析成一个块语句。块内部的age:15是标签语句:age是一个无意义的标签名,15是一个独立的表达式——执行这个块时,只会对15求值然后直接丢弃结果,既不会创建变量,也不会生成任何对象。
  • 后面的toString()是一个独立的函数调用:它和前面的块没有任何关联。这里调用的是全局作用域下的toString()方法,返回'[object Undefined]'是因为当前执行环境中(比如严格模式控制台、模块环境),这个调用的this绑定到了undefined,而Object.prototype.toString.call(undefined)的结果就是'[object Undefined]'。

针对你的疑问:

  • {age:15}没有被完全忽略,但它的执行没有产生任何持久化的结果,也没有创建任何对象。
  • 既然没有创建对象,自然不存在“创建后立即被垃圾回收”的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:03:32