Nodejsとブラウザの違いは何ですか

青灯夜游
リリース: 2021-11-12 13:48:14
オリジナル
3423 人が閲覧しました

違い: 1. グローバル環境では、この in ノードはグローバルを指しますが、ブラウザではこれはウィンドウを指します; 2. DOM と BOM はブラウザで直接または間接的に操作できますが、DOM は操作できませんノードおよび BOM で操作できる; 3. ブラウザは、nodejs でファイル操作やその他の機能を実行できません。

Nodejsとブラウザの違いは何ですか

#このチュートリアルの動作環境: Windows7 システム、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 の操作は行いません。

Nodejsとブラウザの違いは何ですか

4. I/O の読み取りと書き込み

ブラウザとは異なり、他のサーバーサイドと同様にファイルの読み取りと書き込みを行う必要があります。テクノロジー、nodejs はより便利なコンポーネントを提供します。そして、ブラウザは(互換性を確保するために)、ページ内のローカル画像を直接開きたい場合、多くの問題を抱えます(それが単純な相対パスではないことは言わないでください...試してみればわかります、または見つけることができます)ライブラリ (バイナリ ストリームであるか、アップロードされてネットワーク アドレスが表示されます。そうでない場合、なぜ js ライブラリを構築するのでしょうか?)、このノードのすべてが 1 つのコンポーネントで実行されます。

5. モジュールの読み込み

JavaScript は、パッケージ参照を持たないネイティブ API で、読み込むものをすべて一度に実行するという特性があります。それは私たちが見る必要があるものです クロージングスキルをありがとう。使用されるものはすべて一緒にあり、分割統治はなく、ロジックや再利用性はありません。ページや Web サイトが単純な場合は、もちろん、AMD および CMD の js ライブラリ (requireJS や seaJS など) を使用して実行できます。実際、多くの大規模 Web サイトでこれが行われています。

CMD モジュールの読み込み API は、nodeJS で提供されます。seaJS を使用したことがある場合は、すぐに使い始めることができます。

Node は、パッケージ管理ツールである npm も提供します。これにより、ドリンク ライブラリをより効果的かつ便利に管理できます。

もちろん、ブラウザ側の ES6 にもこの機能が追加されています。将来的にはもっと良くなります。 。 。

もちろん、ノードとブラウザの間には多くの違いがあるため、それらは随時追加していきます。

[推奨学習:「

nodejs チュートリアル 」]

以上がNodejsとブラウザの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート