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

VSCode中出现ReferenceError: document is not defined的调试问题求助

解决ReferenceError: document is not defined问题

问题根源

你代码里用到的document是浏览器专属对象,用来操作网页DOM元素,但你当前是在Node.js环境中运行代码——Node.js是后端运行环境,不存在document这个对象,所以才会报错。和VSCode重装、更新软件没关系,核心是代码运行环境搞错了。

具体解决方案

  • 如果你的代码是用来操作网页的前端代码:

    1. 把代码放到HTML文件的<script>标签里,直接用浏览器打开这个HTML文件就能运行,比如:
      <!DOCTYPE html>
      <html>
      <body>
        <script>
          // 这里写你用到document的代码
          const testDiv = document.createElement('div');
          testDiv.textContent = '测试内容';
          document.body.appendChild(testDiv);
        </script>
      </body>
      </html>
      
    2. 用VSCode调试前端代码的话,先装个Live Server插件,右键HTML文件选择“Open with Live Server”,再在VSCode调试面板选Launch Chrome against localhost配置,就能正常调试了。
  • 如果是不小心在Node.js里写了前端代码:

    1. 别用node 你的文件名.js命令运行这类代码,换成上面的前端方式运行。
    2. 要是非要在Node里模拟浏览器环境(新手不推荐先折腾这个),可以先安装jsdom包:
      npm install jsdom
      
      然后在代码开头加这段:
      const { JSDOM } = require('jsdom');
      const dom = new JSDOM('<!DOCTYPE html><html><body></body></html>');
      global.document = dom.window.document;
      
      这样Node环境里就有document对象了,但只适合特殊场景。

关键提醒

先搞清楚**前端代码(浏览器运行)和后端代码(Node.js运行)**的区别:前端代码才能用document、window这些浏览器专属对象,后端代码不行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:47:38