ノード間の違い.JSとブラウザ


・・・アクションボタン
背景色:135度C 339 C 35!重要
カラー:5 F 5 F 5 F 5.重要
ボーダーカラー:339 C 35重要


クリーンコードスタジオ


Clean Code Clean Life ~ Simplify
はい、ブラウザとノード.JSは両方ともJavaScriptソフトウェア言語を使用します-しかし、リテラル実行時間環境は異なります.
ノード.サーバー側のJavaScriptは、クライアント側のJavaScriptと多くの類似点を持っています.また、多くの違いがあります.
両方のソフトウェア言語としてJavaScriptを使用しても、我々は2つの根本的に異なるソフトウェア開発の経験をするいくつかの重要な違いにキーを入れることができます.
今日のポストでは、別のノードの違いに飛び込んでいます.ブラウザ(別名クライアント側JavaScript)からJS(別名サーバー側JavaScript).
フロントエンドの開発者の視点から、ノード.JSは大きな利点として遭遇する.ノード.JSは親しみや快適さのパワーを引き出し、開発者はJavaScriptのソフトウェア言語を使用して完全なスタックアプリケーションを作成することができます.これは巨大です.
スタックの両端に同じ言語を使用することで、JavaScriptを深く学ぶことができますし、言語の間でバウンスし、他のすべてのソフトウェア開発の上に2つ以上の言語にあなたの学習リソースを分割することなく学ぶことが必要とせずにより良く、より良いになるに固執することができます.

"We're using JavaScript on both sides, so what changes?"


ノード間の変更.JSとブラウザ側のJavaScriptは生態系です.
たとえば、ブラウザでは.
  • DOM ( Document Object Module )との相互作用
  • WebプラットフォームAPIの利用
  • これらの例はもちろん、実際にはノード内に存在しません.DOMは代表的な層であり、ブラウザのパワーを介してWeb用の視覚的なユーザインタフェース層を作成する必要性に大きく影響されたドキュメントオブジェクトモジュールです.
    ノード.JSはサーバー側です、我々はDOMを持っていません、また、我々はクッキーを必要としません.クッキーは、主にユーザーを追跡したり、ユーザー情報を保存するために実装されています-私たちはサーバー側にしており、データベースやストレージリソースへの直接アクセスを持っており、ノードを使用しています.JSは、ウェブサイトをバックアップするサーバー自体を制御するために-これは、フロントエンド上の当社のWebサイトサーバーと通信するために使用されるブラウザとの対話の代わりにです.
    ブラウザでは、JavaScriptはノードが持っているいくつかのクリーンAPI/モジュールへのアクセスを持っていません.
    たとえば、ノードでは.
  • ファイルシステム( fs )との対話とアクセスが可能です.
  • もう一つの大きな違いは、そのノードです.JSは環境そのものを制御することができます.誰もがどこにでもビルドして配置することが許可されているオープンソースアプリケーションを構築していない場合は、どのバージョンのノードを知っています.JSあなたのアプリケーションを実行されます.
    これはブラウザのバージョンに基づいている環境と比較します.あなたの訪問者がフロントエンドで使用する環境を定義するの贅沢を持っていない.バックエンドでは、これは非常に開発者として便利です.
    これは、すべての現代的なES 6 - 7 - 8 - 9を書くことができることを意味し、あなたのノードのバージョンがサポートするJavaScriptのように.
    JavaScriptの進歩はそこに他のソフトウェアの言語として高速-ブラウザの一見常にJSの曲線の後ろに(少なくともいくつかの多くのブラウザのいくつかは、最新のJavaScriptのリリースを使用してあなたのアプリケーションの互換性をサポートするためにビットを待つ必要があるので、すべてのお客様のお客様のソフトウェアをサポートし、お客様の経験をサポートしています).
    JavaScriptはとても速く動くので、ブラウザは少しアップグレードするのが遅いかもしれません、時々、あなたは古いJavaScript/ECMAScriptリリースを使って立ち往生しています.
    ブラウザ側では、ブラウザに出荷する前に、あなたのコードをES 5互換性に変換するためにBabelを使用することによって、この「ブラウザは常に少し後ろの」問題を軽減するために少しの余分の仕事をすることができます.これは、Webpackをインストールするには、適切なトランスポーター(s)を使用していることを確認し、最終的にすべてのブラウザーが使用できるようにJavaScriptの古いバージョンに最終的にあなたの現代のJavaScriptを減らすために設定された正しい構成を持っている必要があります.
    を返します.JS側、あなたはこれをする必要はありません.これを行う必要はありません.
    もう一つの違いはそのノードです.JSはCommonJSモジュールシステムを使用していますが、ブラウザではESモジュール標準を実装し始めています.
    実際には、これを使用する必要がありますrequire() 使用中ノードimport ブラウザ内で-これは将来的に変更/標準化されるように見えます.

    ノードとはjs


    ノード.JSは、ChromeのJavaScriptエンジンV 8と呼ばれるベースのJSランタイムです.簡単に言えば、クロムからのV 8 JSエンジンを抽出し、それを使用して新しい技術が単独で実行するために行われている.もちろん、このようなものに入る多くのものがあります.
    前述のように、これはDOMではなく、ユーザインタフェースがなく、ランタイムの違いがあります.

    ノードのインストール.js VSブラウザ


    PythonやPHPのように、実際にはノードをインストールする必要があります.それはあなたのマシンで正常に動作するためのJS.ノードをインストールできます.jshere .
    ノード.jsはすべての主要なオペレーティングシステム(Windows、Mac、Ubuntuなど)でサポートされています.
    反対側にはブラウザがあります.ブラウザにJavaScriptをインストールするように見えますか?答えは何のように見えないです.ブラウザはJavaScriptを使用し、解釈し、実行することができます.あなたはそれをインストールしないでください、それはブラウザが付属しています.

    ノードの実行js VSブラウザ


    一度インストールされたら( PHP、Python、その他のサーバー側の言語のように)ノード.JSはコマンドラインまたはターミナルを直接実行できます.
    JavaScriptファイルを実行することで呼び出すことができますnode {file_path.js} 端末またはコマンドラインを通して.これは、端末からPHPやPythonを実行しているように動作します.
    を使用してファイルを呼び出すことができますnode {file_path.js} またはnode インタラクティブに入るREPL .
    cmd> node ./test.js 
    cmd> "hello world"
    cmd>
    cmd> node
    node> console.log('hello world')
    node> "hello world"
    node> .exit
    cmd>
    
    JavaScriptファイルおよび/または端末のREPL環境の直接実行の種類のブラウザ側では動作しません.
    ブラウザコンソールは、検査ツールを介してアクセスできますが、このブラウザコンソールでは、実際にはJavaScriptファイルを直接実行することはできません.また、サーバー/マシンリソースと直接対話するREPLを与えることもできません.
    あなたは直接JSファイルを呼び出すと、ブラウザからの機能を実行する機能を持っていない.あなたは、HTMLドキュメントにJSファイルをロードし、ブラウザがソースコードをプルし、最終的にはJavaScriptを実行できるようにする必要があります.

    システムアクセス


    ブラウザサンドボックスJavaScriptの安全性.
    ノード.JSは他のネイティブアプリケーションのようなシステムへのフルアクセスを開発者に提供します.
    これはノードを意味します.JSはファイルシステムから直接読み書きでき、ネットワークへのアクセスが制限され、マシンにインストールされたソフトウェアを実行することができます.
    これはまた、ノードを処理しなければならないことを意味します.より多くの注意をもつJS -あなたはサンドボックスではありません、あなたはすべてのことをすることができます.大きな力で大きな責任が来る.

    グローバル対ウィンドウ


    ブラウザ側のJSではwindow オブジェクト.これはフロントエンド/クライアント側JSの最上位の親オブジェクトです.
    サーバー側のJSではglobal オブジェクト.これはノードで最も公開/グローバルにアクセス可能なオブジェクトです.js

    ノード間の類似性。のブラウザ側

  • 両方のJavaScriptを実行するための単一のスレッドがあります
  • 両方ともEvent Queueを使用します
  • 両方とも非ブロッキング
  • 両方の同期とASINの機能があります
  • どちらも例外、フロー、およびスコープを使用します