Node.js とブラウザの違い
ブラウザと Node.js はどちらも JavaScript をプログラミング言語として使用しています。ブラウザで実行するアプリを構築することは、Node.js アプリケーションを構築することとはまったく異なります。常に JavaScript であるという事実に反して、エクスペリエンスを根本的に異なるものにするいくつかの重要な違いがあります。
JavaScript を多用するフロントエンド開発者の観点からすると、Node.js アプリは大きな利点をもたらします。それは、フロントエンドとバックエンドの両方を単一の言語でプログラミングできる快適さです。
プログラミング言語を十分に深く学習することがいかに難しいかを知っているため、大きなチャンスがあります。クライアントとサーバーの両方で、Web でのすべての作業を実行するために同じ言語を使用することで、独自の有利な立場に立つことができます。
何が変わるかというと、それはエコシステムです。
ブラウザでは、ほとんどの場合、DOM や Cookie などの他の Web プラットフォーム API とやり取りしています。それらはもちろん Node.js には存在しません。ブラウザによって提供される document
、window
、およびその他すべてのオブジェクトはありません。
また、ブラウザには、ファイルシステムアクセス機能など、Node.js がモジュールを通じて提供する優れた API がすべてあるわけではありません。
もう 1 つの大きな違いは、Node.js では環境を制御できるということです。誰でもどこにでもデプロイできるオープンソースアプリケーションを構築している場合を除き、アプリケーションを実行する Node.js のバージョンを知っています。訪問者がどのブラウザを使用するかを選択する贅沢がないブラウザ環境と比較すると、これは非常に便利です。
つまり、Node.js バージョンがサポートするすべての最新の ES2015+ JavaScript を記述できます。JavaScript は非常に高速に進化しますが、ブラウザのアップグレードには時間がかかるため、Web では古い JavaScript/ECMAScript リリースを使用せざるを得ない場合があります。Babel を使用して、コードをブラウザに出荷する前に ES5 互換に変換できますが、Node.js ではその必要はありません。
もう 1 つの違いは、Node.js が CommonJS と ES モジュールの両方のシステムをサポートしていることです (Node.js v12 以降)。一方、ブラウザでは ES モジュール標準が実装され始めています。
実際には、Node.js では require()
と import
の両方を使用できますが、ブラウザでは import
に制限されているということです。