ホームページ >ウェブフロントエンド >フロントエンドQ&A >ノード環境とブラウザ環境の違いは何ですか?
違い: 1. ノードではこれはグローバルを指しますが、ブラウザではこれはウィンドウを指します; 2. ほとんどの場合、ブラウザの js は直接または間接的に DOM を操作し、ノード内の DOM を操作しません; 3. Node にはファイルの読み書きに便利なコンポーネントが用意されていますが、ブラウザにはコンポーネントがありません。
このチュートリアルの動作環境: Windows10 システム、nodejs バージョン 12.19.0、Dell G3 コンピューター。
1. グローバル環境でのポイント
ノードでは、これは、ブラウジング中はグローバルを指します ブラウザのこれはウィンドウを指します、そのため、ルートはアンダースコアで定義されます;
var root = typeof self == 'object' && self.self === self && self || typeof global == 'object' && global.global === global && global || this;
そして、アラートなどの多くの API がブラウザのウィンドウの下にカプセル化されます。文書、場所、歴史など、他にもたくさんあります。ノード環境ではxxx();やwindow.xxx();は使用できません。これらの API はブラウザレベルのカプセル化であるため、JavaScript では使用できません。もちろん、node は多くのノード固有の API も提供します。
2. js エンジン
ブラウザでは、さまざまなブラウザ メーカーがさまざまなブラウザ カーネルを提供しており、ブラウザはこれらのカーネルに依存して、作成した js を解釈して折りたたむことができます。しかし、異なるカーネル間の小さな違いを考慮すると、対応する互換性が必要ですが、幸いなことに、jquery、アンダースコアなど、この問題に対処するのに役立つ優れたライブラリがいくつかあります。
Nodejs は Chrome の JavaScript ランタイムに基づいています。つまり、実際には Google V8 エンジン (Google Chrome ブラウザに適用される) をカプセル化します。 V8 エンジンは Javascript を非常に高速に実行し、非常に優れたパフォーマンスを発揮します。
NodeJS は単純なカプセル化を提供せず、その後 API 呼び出しを提供するため、もしそうなら、今ほど普及していなかったはずです。 Node は、いくつかの特別な使用例を最適化し、非ブラウザ環境で V8 をより適切に実行できるようにする代替 API を提供しました。たとえば、サーバー環境では通常、バイナリ データの処理が不可欠ですが、JavaScript ではこれが十分にサポートされていないため、V8.Node ではバイナリ データを便利かつ効率的に処理するための Buffer クラスを追加します。したがって、Node は単に V8 を使用するだけでなく、さまざまな環境でより強力になるように最適化します。
js エンジンが修正され、Shenma との互換性もサポートされました。
3. DOM 操作
ほとんどの場合、ブラウザーの js は DOM を直接または間接的に操作します (一部の仮想 DOM ライブラリとフレームワーク)。ブラウザ内のコードは主にプレゼンテーション層で動作するためです。ただし、ノードはサーバー側のテクノロジーです。フロントページがないため、ノードでの DOM の操作は行いません。
4. I/O の読み取りと書き込み
ブラウザとは異なり、他のサーバーサイド技術と同様にファイルの読み取りと書き込みが必要ですが、Nodejs はより便利なコンポーネントを提供します。そして、ブラウザは(互換性を確保するために)、ページ内のローカル画像を直接開きたい場合、多くの問題を抱えます(それが単純な相対パスではないことは言わないでください...試してみればわかります、または見つけることができます)ライブラリ (バイナリ ストリームであるか、アップロードされてネットワーク アドレスが表示されます。そうでない場合、なぜ js ライブラリを構築するのでしょうか?)、このノードのすべてが 1 つのコンポーネントで実行されます。
5. モジュールの読み込み
JavaScript の特徴の 1 つは、パッケージ参照を提供しないネイティブ API が、読み込まれるすべてのものを一度に実行することです。クロージングスキルを教えていただきありがとうございます。使用されるものはすべて一緒にあり、分割統治はなく、ロジックや再利用性はありません。ページや Web サイトが単純な場合は、もちろん、AMD および CMD の js ライブラリ (requireJS や seaJS など) を使用して実行できます。実際、多くの大規模 Web サイトでこれが行われています。
CMD モジュールの読み込み API は、nodeJS で提供されます。seaJS を使用したことがある場合は、すぐに使い始めることができます。
Node は、ドリンク ライブラリをより効果的かつ便利に管理できるパッケージ管理ツールである npm も提供します
もちろん、ブラウザの ES6 にもこの点に関する補足機能があります。将来的には良くなります。 。 。
推奨学習: 「nodejs ビデオ チュートリアル 」
以上がノード環境とブラウザ環境の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。