VSCode 運行 js 文件報錯 ReferenceError: document is not defined


今天使用 VSCode 運行 js 腳本時總是報錯 ReferenceError: document is not defined

代碼如下

<!DOCTYPE html>
<html>
    <head>
        <meta charset="Utf-8">
        <title>testDom</title>
    </head>
    <body>
        <h1>Love</h1>
        <p id="para">Never give up.</p>
        <script type="text/javascript">
            var paragraph = document.getElementById('para');    // 不能調用 document.getElementById('para')
            console.log(paragraph.id);
        </script>
    </body>
</html>

出現錯誤的原因是因為不了解 js 腳本的運行環境:

  1. js 腳本的運行環境有瀏覽器環境和 Node.js 兩種,根據 Node.js 官方網站的介紹,Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.
  2. 上述代碼調用了 Document 類型提供的方法 getElementById(),屬於 DOM 的應用,但是對於 DOM 和 BOM 的操作只有在瀏覽器環境下才能進行,
  3. 而在 VSCode 這里我是用插件 Code Runner 來運行 js 腳本的,Code Runner 的配置是 Node.js
    環境,如果操作 DOM 就會報錯。

如果要了解更多兩種運行環境的區別,請參考 https://blog.csdn.net/weixin_44114310/article/details/90452246。

如果要在 Node.js 環境里使用瀏覽器環境下的 document 對象,可能得借助 Node.js 庫 jsdom,我沒有實際操作過,詳情請參考 https://cloud.tencent.com/developer/article/1438893。

這次的錯誤折騰了我一個上午,都快崩潰了,說到底還是自身的基礎不夠扎實,不過也讓我學習了解了谷歌開發者工具 Chrome DevTools,之前一直依賴於 VSCode,也算是有所收獲吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM