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

为何Chrome DevTools中比较{}时会抛出错误?

为什么Chrome DevTools执行{} === {}报错,Node环境却正常?

核心原因是两者的代码解析模式不同:

  • Chrome DevTools控制台默认以语句模式解析输入:开头的{}会被识别为空语句块(类似if(){}里的代码块结构),而非对象字面量。此时{} === {}会被解析成(空语句块) === {},不符合JavaScript语法规则,因此抛出语法错误。
  • Node环境默认以表达式模式解析输入:它会把整段输入当作一个表达式处理,开头的{}会被识别为对象字面量。{} === {}本质是比较两个独立创建的对象的引用地址,由于JS中对象是引用类型,两个新对象的内存地址不同,因此会返回false。

验证方法

在Chrome DevTools里如果想让{}被当作对象字面量解析,只需把代码包裹在括号中,强制控制台以表达式模式处理:

({} === {}) // 返回 false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 16:45:53