目次
Node.js の概要
Node.js は、2009 年 5 月にリリースされ、Ryan Dahl によって開発されました。これは、Chrome V8 エンジンに基づく JavaScript 実行環境です。イベント駆動型のノンブロッキング I/O モデルを使用して、サーバー上で JavaScript を実行できます。サイド開発プラットフォーム: JavaScript を、PHP、Python、Perl、Ruby などのサーバーサイド言語と同等のスクリプト言語にします。
Node.js は、いくつかの特別な使用例を最適化し、ブラウザ以外の環境で V8 の実行を向上させるための代替 API を提供します。V8 エンジンは、JavaScript を非常に高速に実行し、非常に優れたパフォーマンスを発揮します。これは、Chrome JavaScript ランタイム上に構築されたプラットフォームです。高速な応答性と容易な拡張性を備えたネットワーク アプリケーションを構築します。
- フロントエンドコア技術システム
- Node.js はサーバーとして使用できます [小さなプログラム、アプリ、ウェブサイト、ゲーム]
- 学習内容は以下の通りです。 【知識ポイントが多くなり、より難しくなります】
- コンピュータの構造
- プログラム実行プロセス
- プロセスとスレッド
- 同期と非同期
- IPとポート
Node.jsを学ぶ理由
- フロントエンド開発の 3 つの主要なフレームワーク、Vue、React、Angular が密接に関連しています。
- 私たちが作成した Web ページに他の人がアクセスできるようにする
- その後のフレームワーク学習の基礎を築く
Node.jsとは何ですか?
Node.js は、オープンソースのクロスプレイフォーム JavaScript ランタイム環境です [https://nodejs.org/en/ 公式 Web サイトから引用]
Node.js は、オープンソースのクロスプレイフォーム JavaScript ランタイム環境です。
一般的な説明: Node.js はアプリケーションであり、JavaScript を実行できるソフトウェアの一部です。
誤解: Node.js はプログラミング言語です。Node.js は JavaScript の新しいバージョンです。
Node.jsの役割
1. サーバーアプリケーションの開発
Web ページ ファイルの構成: HTML コントロール構造、CSS コントロール スタイル、JavaScript コントロール インタラクションと
サーバー上で実行される nodejs の効果
サーバーは、記述された HTML、CSS、および JavaScript ファイルを保存します。
ユーザーは、URL を介してサーバーにリクエストを送信します。
サーバーはリソースをブラウザーに返し、ブラウザーはリソースを解析して Web サイトのページを表示します。
2. 開発ツールのアプリケーション
3. デスクトップアプリケーションの開発
- VSCode: コードエディター
- Figma: デザインツール
- Postman: インターフェイス テスト ツール
- electron: 上記の 3 つのソフトウェアはすべて、node.js の助けを借りて開発された Electron フレームワークに依存しています。
Node.jsのインストール
リンク:Node.js公式サイト[https://nodejs.org/ja]
- LTS:長期保守版
Win+R→cmdと入力→Enter: コマンドプロンプトツールを開きます [コマンドラインツール] 「
node -v」と入力して、node.jsが正常にインストールされているかどうかを監視し、バージョン
図を表示します: [C:\Users\Zyf]はコマンド ライン ディレクトリ。node はコマンド名、-v はコマンド パラメータです。
コマンドラインツールについて知る
プログラムはコマンドラインツールで実行できます。
コマンドの構造はコマンド名とコマンドパラメータで構成されます(コマンドパラメータは0以上です)。
コマンドラインを使用して D:/Program Files の内容を表示するにはどうすればよいですか?
#切换工作目录到D盘命令 d:
#查看D盘内容命令 dir
#改变文件夹命令 cd 【切换工作目录】
#将工作目录切换到上一级命令 cd ..
説明する | 操作する |
---|---|
ドライブ文字を切り替える | CD: |
作業ディレクトリを切り替える | CD |
カタログファイルを表示する | ディレクトリ |
- dir \s を実行すると、サブフォルダーの内容を含む現在の作業ディレクトリの内容が表示されます。Ctrl +Cでコマンドを終了できます。
- コマンドラインツールでjsファイルを実行します。現在のファイルディレクトリでnode filename.jsコマンドを実行して、jsファイルを実行します。
Node.js の考慮事項
- BOM および DOM API は Node.js では使用できませんが、コンソール API およびタイマー API は使用できます。
- Node.js のトップレベル オブジェクトはグローバルであり、globalThis を使用してトップレベル オブジェクトにアクセスすることもできます。
JS コア構文: 変数宣言、ループ制御、オブジェクト関数宣言など。
//BOM
console.log(window); //ReferenceError: window is not defined
console.log(history); //ReferenceError: history is not defined
console.log(navigator); //ReferenceError: navigator is not defined
console.log(location); //ReferenceError: location is not defined
//DOM
console.log(document); //ReferenceError: document is not defined
//AJAX
let xhr = new XMLHttpRequest(); //ReferenceError: XMLHttpRequest is not defined
console.log('one'); //one
setTimeout(() => {
console.log('two');
}, 1000); //two
//global 顶级对象
// console.log(global);
// console.log(globalThis);//ES2020
console.log(global === globalThis); //true
バッファの導入と作成
1.コンセプト
バッファは配列に似たオブジェクトで、固定長のバイト シーケンスを表すために使用されます。
バッファは本質的には固定長のメモリ空間であり、特にバイナリ データの処理に使用されます。
2.特長
- バッファサイズは固定されており、調整できません
- バッファーは優れたパフォーマンスを備えており、コンピューターのメモリ上で直接操作できます。
- 各要素のサイズは 1 バイト (byte) [1 バイト = 8 ビット]
3.用途
3.1 バッファの作成
Node.js でバッファーを作成する方法:
- Buffer.alloc
//创建一个长度为10字节的Buffer,相当于申请了10字节的内存空间,每个字节的值为0
let buf_1 = Buffer.alloc(10); //Buffer是Nodejs内置模块,全局变量;alloc【分配】是方法
console.log(buf_1); //结果为<Buffer 00 00 00 00 00 00 00 00 00 00>
- Buffer.allocUnsafe
//创建一个长度为10字节的Buffer,buffer中可能存在旧的数据,可能会影响执行结果,所以叫Unsafe
let buf_2 = Buffer.allocUnsafe(10);
console.log(buf_2);
- バッファーフロム
//通过字符串创建buffer
let buf_3 = Buffer.from('hello');//字母转换成Unicode表的数字的16进制
console.log(buf_3); //结果为<Buffer 68 65 6c 6c 6f>
//通过数组创建buffer
let buf_4 = Buffer.from([105,108,111,118,101,121,111,117]);
console.log(buf_4); //结果为<Buffer 69 6c 6f 76 65 79 6f 75>
ASCII テーブルと互換性のある Unicode テーブル
3.2 バッファと文字列の変換
toStringメソッドを使用して、バッファを文字列に変換できます。
let buf_4 = Buffer.from([105,108,111,118,101,121,111,117]);
console.log(buf_4.toString()); //结果为iloveyou
toString は、デフォルトでは utf-8 エンコーディングに従って変換されます。
3.2 バッファの読み書き
バッファは[ ]を通じてデータを直接処理できます。
//读取 []
// let buf_3 = Buffer.from('hello');
console.log(buf_3[0]); //结果为104
console.log(buf_3[0].toString(2)); //结果为1101000,真实保存的值为01101000
//修改写入
buf_3[1] = 97;
console.log(buf_3.toString()); //结果为hallo
//溢出
buf_3[0] = 361; //255(10进制) => 1111 1111(2进制),大于255的舍弃高位的数字 0001 0110 1001(2进制) => 0110 1001(2进制) => 105(10进制) => 69(16进制)
console.log(buf_3); //结果为<Buffer 69 61 6c 6c 6f>
//中文
let buf_5 = Buffer.from('你好'); //utf-8的一个中文字符占3个字节
console.log(buf_5); //结果为<Buffer e4 bd a0 e5 a5 bd>
注:
1. 変更された値が 255 を超える場合、8 ビットを超えるデータは破棄されます
2. UTF-8 文字は通常 3 バイトを占めます。
コンピュータの基本
コンピュータの基本コンポーネント
- CPU: 中央処理装置。コンピュータの操作と制御の中枢。
- メモリ: データを保存するための媒体で、読み取りおよび書き込み速度が速く、電源を切るとデータは失われます。
- ハードディスク:データを保存する媒体で、読み書き速度が遅く、電源を切ってもデータが失われることはありません。
- マザーボード
- グラフィックカード、サウンドカード: 信号の処理
- ヒートシンク
- 周辺機器: マウス、キーボード、オーディオなど。
プログラム動作の基本的な流れ
オペレーティング システム: Windows、Linux、MacOS は、ハードウェア リソースの管理とスケジュールに使用されるアプリケーションです。(オペレーティング システムはコンピュータのハードディスクにインストールされている必要があります)
コンピュータ起動の基本プロセス:
プログラム起動の基本プロセス:
通常、プログラムはハードディスクに保存され、ソフトウェアのインストールプロセスはプログラムをハードディスクに書き込むプロセスです。
プログラムの実行時には、プログラムがメモリにロードされ、CPU がプログラムを読み取って実行します。
プロセスとスレッド
プロセス: [プログラム実行中]、プロセスはプログラムの実行プロセスです。
Windows システムはタスク マネージャーを通じてプロセスを表示できます
スレッド: スレッドはプロセス内で実行される実行ストリームです。スレッドはプロセスに属します。
プロセスには 1 つ以上のスレッドを含めることができます。
特定のプロセスの下にあるすべてのスレッドを表示します: pslist -dmx pid 番号 [pid 番号はプロセス ID]
注: pslist と入力します。コマンドが認識されない場合は、pslist がインストールされていないことを意味します現在のコンピューター。ツールは Windows の公式 Web サイトからダウンロードできます: https://technet.microsoft.com/en-us/sysinternals/bb896682.aspx。ダウンロードが完了したら、C:\Windows\System32 に解凍します。使用するパス、または環境変数に設定することもできます。