Node.js とブラウザの違い
ブラウザと Node.js はどちらも JavaScript をプログラミング言語として使用します。ブラウザで実行されるアプリを構築することは、Node.js アプリケーションを構築することとは全く異なります。常に JavaScript であるという事実に反して、その経験を根本的に異なるものにするいくつかの重要な違いがあります。
JavaScript を広範囲に使用するフロントエンド開発者の視点から見ると、Node.js アプリは大きな利点をもたらします。それは、フロントエンドとバックエンドの両方すべてを単一の言語でプログラミングできるという快適さです。
プログラミング言語を完全に、深く習得することがいかに難しいかを知っているので、大きなチャンスがあります。クライアントとサーバーの両方で、Web 上ですべての作業を実行するために同じ言語を使用することで、あなたは他に類を見ない有利な立場にいます。
TIP
変わるのはエコシステムです。
ブラウザでは、ほとんどの場合、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 Modules 標準の実装が開始されつつあります。
実際には、これは Node.js では require()
と import
の両方を使用できるのに対し、ブラウザでは import
に制限されることを意味します。