Node.js では、.js ファイルは完全なスコープ (モジュール) です。したがって、var によって宣言された変数は、グローバルではなく、現在の .js ファイル内でのみ有効です。 グローバル オブジェクトはすべての .js (モジュール) から独立しています。 ブラウザの最上位のグローバル オブジェクトは window であり、var で宣言された変数はデフォルトで window オブジェクトにバインドされます。 1. グローバルオブジェクトの定義概念: プログラム内のどこからでもアクセスできるオブジェクトは、グローバル オブジェクトと呼ばれます。オブジェクトのプロパティはグローバル変数と呼ばれます。 2. NodeJSのグローバル変数の概要ここでは、Node.jsでよく使用されるグローバル変数をまとめます。 2.1 バッファクラス バッファは「バッファー」とも呼ばれ、バイナリデータを格納するためにメモリ内に領域を開く機能を持っています。 2.2 __ディレクトリ名 __dirname は、解析後に現在のモジュール ファイルが配置されているフォルダー (ディレクトリ) の絶対パスを返します。 __dirname は実際にはグローバル変数ではないことに注意してください。 2.3 __ファイル名 __filename は、解析された後の現在のモジュール ファイルの絶対パスを返します。 __filename は実際にはグローバル変数ではないことに注意してください。 2.4 モジュール モジュールは実際にはグローバル変数ではないことに注意してください。 2.5 必要() require() は実際にはグローバル変数ではないことに注意してください。 2.6 輸出 エクスポートは実際にはグローバル変数ではないことに注意してください。 2.7 setImmediate と clearImmediate 2.8 setTimeout と clearTimeout 2.9 setInterval と clearInterval 2.10 コンソール 標準出力と標準エラーに印刷する場合 2.11 プロセス プロセス オブジェクトは、現在の Node.js プロセスに関する情報と制御を提供します。 2.12 URL URL 処理と解析のための URL ユーティリティ 2.13 イベント イベント モジュールは、Node の「パブリッシュ/サブスクライブ」モデルの実装です。オブジェクトはこのモジュールを通じて別のオブジェクトにメッセージを渡します。このモジュールは、EventEmitter 属性を通じてコンストラクターを提供します。 3. グローバル3.1 globalThis とは何ですか? JS 言語はさまざまな環境でますます使用されるようになっています。最も一般的なブラウザに加えて、サーバー、スマートフォン、さらにはロボットのハードウェアでも実行できます。 各環境には独自のオブジェクト モデルがあり、グローバル オブジェクトにアクセスするための異なる構文が提供されます。たとえば、Web ブラウザでは、グローバル オブジェクトには window、self、または frames を通じてアクセスできます。ただし、Node.js ではこれらのプロパティは存在しないため、代わりにグローバルを使用する必要があります。 globalThis は、標準のグローバル プロパティを定義することで、ますます断片化しているグローバル オブジェクトへのアクセス方法を統合することを目的としています。この提案は ES2020 標準に含まれていました。 Chrome 71 以降、Firefox 65 以降、Safari 12.1 以降を含むすべての一般的なブラウザは、すでにこの機能をサポートしています。 Node.js 12 以降でも使用できます。 コンテンツ拡張子: NodeJS - グローバルオブジェクト 関数グローバル() { // グローバル変数。 __filename は現在実行中のスクリプトのファイル名を表します。 console.info('__filename: ' + __filename); // __filename: D:\github\nodejs-test\requestHandlers.js // グローバル変数。 __dirname は、現在実行中のスクリプトが配置されているディレクトリを示します。 console.info('__dirname : ' + __dirname); // __dirname : D:\github\nodejs-test // グローバル関数。 setTimeout(cb, ms) グローバル関数は、指定されたミリ秒数 (ms) 後に指定された関数 (cb) を実行します。 setTimeout() は指定された関数を 1 回だけ実行します。タイマーを表すハンドル値を返します。 setTimeout(関数() { console.info('setTimeout: 一度だけ実行します。'); }, 2000); // グローバル関数。 clearTimeout(t) グローバル関数は、以前に setTimeout() で作成されたタイマーを停止するために使用されます。 パラメーター t は、setTimeout() 関数によって作成されたタイマーです。 t = setTimeout(関数() { console.info('clearTimeout: 実行できません。'); }, 2000); clearTimeout(t); // タイマーをクリアします // グローバル関数。 setInterval(cb, ms) グローバル関数は、指定されたミリ秒数 (ms) 後に指定された関数 (cb) を実行します。 tt = setInterval(関数() { console.info('setInterval: 2秒ごとに実行します。'); }, 2000); // グローバル関数。 setInterval() メソッドは、clearInterval() が呼び出されるかウィンドウが閉じられるまで、関数を繰り返し呼び出します。 setTimeout(関数() { clearInterval(tt); // タイマーをクリア }, 5000); // グローバル オブジェクト。コンソール console.info('console: 私もグローバルに属しています。'); // グローバル変数。グローバル オブジェクトの属性。プロセス console.info('プロセスの現在のディレクトリ: ' + process.cwd()); // 現在のディレクトリを出力console.info('プロセスの現在のバージョン: ' + process.version); // 現在のバージョンを出力console.info('プロセスのプラットフォーム情報: ' + process.platform); // プラットフォーム情報を出力} 出力: __ファイル名: D:\github\nodejs-test\requestHandlers.js __dirname: D:\github\nodejs-test console: 私もglobalに所属しています。 プロセス 現在のディレクトリ: D:\github\nodejs-test プロセス 現在のバージョン: v10.15.3 プロセスプラットフォーム情報: win32 setTimeout: 一度だけ実行します。 setInterval: 2秒ごとに実行します。 setInterval: 2秒ごとに実行します。 これで、Node.js とブラウザのグローバル オブジェクトの違いに関するこの記事は終了です。Node.js のグローバル オブジェクトの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Zabbix による SQL Server の監視プロセスの詳細な説明
>>: CentOS7にMySQL 8.0.26をインストールする手順
目次1. テストデータ2. ヌル値による不便3. スペース、空の値、null をどのように判断すれば...
コードと例を直接投稿する #テーブル作成時にコメントを記述する CREATE TABLE useri...
シナリオ 1:半透明の境界線を実現するには: CSS スタイルのデフォルトの動作により、背景色はコン...
今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。関連記事: HTML タ...
開発を行う際に、次のような状況に遭遇することがよくあります。 a.swf が Web ページに追加さ...
ご存知のとおり、コンピューターには 2 種類の画像があり、1 つはビットマップ、もう 1 つはベクタ...
1 はじめにApache Storm は、Hadoop と同様に、大量のデータを処理するために使用で...
Node.js では、.js ファイルは完全なスコープ (モジュール) です。したがって、var に...
序文この記事では主にMySQLのカスタム関数とストアドプロシージャに関する関連コンテンツを紹介し、皆...
パート 1 SSH ポート転送の概要カフェで無料Wi-Fiを利用しているとき、誰かがあなたのパスワー...
この記事の例では、参考までに虫眼鏡コンポーネントを開発するためのjsの具体的なコードを共有しています...
目次1. 現実的な背景2. 合意3. マスターを構成する3.1. 起動パラメータの設定3.2. パラ...
この投稿では、通知、画像とビデオ、フォーム フィールド、タイトル、段落、箇条書きリスト、ナビゲーショ...
基本的な紹介特徴Flexbox は、よりシンプルで効率的なレイアウト方法を提供する CSS 表示タイ...
目次1. プロジェクトの説明1.1 背景1.2 実装設計1.2.1 従来の方法1.2.2 最適化され...