Node.js 與瀏覽器的區別
瀏覽器和 Node.js 均使用 JavaScript 作為其程式語言。
構建運行於瀏覽器中的應用程式與構建 Node.js 應用程式完全不同。
儘管都是 JavaScript,但一些關鍵的差異使體驗相當不同。
從廣泛使用 JavaScript 的前端開發者的角度來看,Node.js 應用程式具有巨大的優勢:使用單一語言輕鬆程式設計所有一切(前端和後端)。
你會擁有巨大的機會,因為全面、深入地學習一門程式語言並通過使用同一語言完成 web(無論是在客戶端還是在伺服器)上的所有工作是非常困難的,你會處於獨特的優勢地位。
不同的還有生態系統。
在瀏覽器中,大多數時候做的是與 DOM 或其他 Web 平臺 API(例如 Cookies)進行互動。 當然,那些在 Node.js 中是不存在的。 沒有瀏覽器提供的document
window
、以及所有其他的物件。
而且在瀏覽器中,不存在 Node.js 通過其模組提供的所有不錯的 API,例如檔案系統訪問功能。
另一個很大的不同是,在 Node.js 中,可以控制執行環境。 除非構建的是任何人都可以在任何地方部署的開源應用程式,否則你能知道會在哪個版本的 Node.js 上執行該應用程式。 與瀏覽器環境(你無法選擇訪客會使用的瀏覽器)相比起來,這非常方便。
這意味著可以編寫 Node.js 版本支援的所有現代的 ES6-7-8-9 JavaScript。
由於 JavaScript 發展的速度非常快,但是瀏覽器發展得慢一些,並且使用者的升級速度也慢一些,因此有時在 web 上,不得不使用較舊的 JavaScript / ECMAScript 版本。
可以使用 Babel 將程式碼轉換為與 ES5 相容的程式碼,再交付給瀏覽器,但是在 Node.js 中,則不需要這樣做。
另一個區別是 Node.js 使用 CommonJS 模組系統,而在瀏覽器中,則還正在實現 ES 模組標準。
在實踐中,這意味著在 Node.js 中使用require()
,而在瀏覽器中則使用import
。