バッファモジュール
js はもともとブラウザー用に設計されたため、Unicode でエンコードされた文字列をうまく処理できますが、バイナリ データをうまく処理できません。 Node.js は、多くの場合バイナリ形式でネットワーク経由でデータを送受信するように設計されているため、これは Node.js の問題です。例:
- TCP 接続経由でデータを送受信します。
- 画像または圧縮ファイルからバイナリ データを読み取ります。
- ファイル システムからのデータの読み取りと書き込み
- ネットワークからのバイナリ データ ストリームを処理します
Buffer モジュールは、生データを Node.js に保存する方法を提供するため、js のコンテキストでバイナリ データを使用できます。 Node.js の I/O 操作で移動されたデータを処理する必要がある場合は、常に Buffer モジュールを使用できます。
クラス: バッファ
Buffer クラスは、バイナリ データを直接処理するために使用されるグローバル変数タイプです。 さまざまな方法で構築できます。
元のデータは Buffer クラスのインスタンスに保存されます。 Buffer インスタンスは整数配列
に似ています。1.new Buffer(size): サイズが 8 ビット バイトの新しいバッファを割り当てます。
2.new Buffer(array): 8 ビットのバイト配列
を使用して新しいバッファを割り当てます。
3.new Buffer(str, [encoding]):encoding 文字列型 - 使用するエンコーディング方法。パラメータはオプションです。
5. クラスメソッド: Buffer.isBuffer(obj): この obj が Buffer であるかどうかをテストします。Return Boolean
。
6. クラスメソッド: Buffer.concat(list, [totalLength]): list {Array} 配列型、バッファ配列、接続されていました。 totalLength {Number} 型 上記のバッファ配列内のすべてのバッファの合計サイズ。
ファイルを読み取ってバッファのインスタンスを取得するだけでなく、次のように直接構築することもできます。
たとえば、指定されたエンコーディングを使用して、バッファと文字列を相互に変換できます。
.slice メソッドは新しいバッファーを返しませんが、以下に示すように、元のバッファーの中央の位置へのポインターを返すのと似ています。
4. ビン bin.slice(2)
これにより、文字「a」がバッファに書き込まれ、ノードはエンコード後にバッファに書き込まれたバイト数を返します。ここでの文字 a の UTF-8 エンコードは 1 バイトを占めます。
バッファをコピー
Node.js は、Buffer オブジェクトの内容全体を別の Buffer オブジェクトにコピーするメソッドを提供します。既存の Buffer オブジェクト間でのみコピーできるため、Buffer オブジェクトを作成する必要があります。
このうち、bufferToCopyTo はコピー対象の Buffer オブジェクトです。以下の例:
varbuffer1 = 新しいバッファ(8);
buffer1.write('初めまして','utf8');
varbuffer2 = 新しいバッファ(8);
バッファ1.コピー(バッファ2);
console.log(buffer2.toString());//初めまして
ストリームモジュール
UNIX タイプのオペレーティング システムでは、ストリームは標準概念です。次の 3 つの主要なストリームがあります:
1.標準入力
2.標準出力
3.標準誤差
読み取り可能なストリーム
Node.js が生データを処理する方法がバッファーである場合、通常、Node.js がデータを移動する方法はストリームです。 Node.js のストリームは読み取り可能または書き込み可能です。 Node.js の多くのモジュールは、HTTP やファイル システムなどのストリームを使用します。
このデータを使用するために、classesmates.txt ファイルを作成し、そこから名前のリストを読み取るとします。データはストリームであるため、ファイルの読み取りが完了する前に、最初の数バイトからデータを操作できることを意味します。これは Node.js の一般的なパターンです。
var fs = require('fs');
var stream = fs.ReadStream('classmates.txt');
stream.setEncoding('utf8');
stream.on('データ', 関数 (チャンク) {
console.log('データを読み取る')
});
stream.on('close', function () {
console.log('すべてのデータが読み取られています')
});
上記の例では、新しいデータを受信したときにイベント データがトリガーされます。ファイルの読み取りが完了すると、close イベントがトリガーされます。
書き込み可能なストリーム
もちろん、データを書き込むための書き込み可能なストリームを作成することもできます。これは、単純なスクリプトを使用して、ストリームを使用してファイルを読み取り、別のファイルに書き込むことができることを意味します。
var fs = require('fs');
var readableStream = fs.ReadStream('classmates.txt');
var writableStream = fs.writeStream('names.txt');
readableStream.setEncoding('utf8');
readableStream.on('data', 関数 (チャンク) {
writableStream.write(チャンク);
});
readableStream.on('close', function () {
writeableStream.end();
});
データ イベントを受信すると、データが書き込み可能なストリームに書き込まれるようになりました。
readable.setEncoding(encoding): return: this
readable.resume(): 上記と同じ。このメソッドを使用すると、読み取り可能なストリームがデータ イベントを発生し続けることができます。
readable.pause(): 上記と同じ。このメソッドにより、フロー モードのストリームがデータ イベントの発生を停止し、非フロー モードに切り替わり、後続の使用可能なデータが内部バッファに残されます。
クラス: stream.Writable
Writable ストリーム インターフェイスは、ターゲットに書き込むデータを抽象化したものです。
1.writable.write(チャンク, [エンコーディング], [コールバック]):
チャンク {String | Buffer} 書き込むデータ
エンコーディング {String} エンコーディング、チャンクが文字列
の場合
callback {Function} データブロックが書き込まれた後のコールバック
戻り値: {Boolean} データが完全に処理された場合は true。
このメソッドは、基礎となるシステムにデータを書き込み、データが処理された後に指定されたコールバックを呼び出します。
2.writable.cork(): すべての書き込みを強制的に維持します。
保持されたデータは、.uncork() または .end() が呼び出されたときに書き込まれます。
3.writable.end([チャンク], [エンコーディング], [コールバック])
チャンク {String | Buffer} はオプション、書き込まれるデータ
エンコーディング {String} エンコーディング、チャンクが文字列
の場合
callback {Function} オプション、ストリーム終了後のコールバック
end() を呼び出した後に write() を呼び出すとエラーが生成されます。
// 「hello,」と書き、「world!」で終わります
http.createServer(function (req, res) {
res.write('こんにちは、');
res.end('世界!');
// 現在、これ以上の書き込みは許可されていません
});

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









