Node.js とブラウザのグローバル オブジェクトの違いの概要

Node.js とブラウザのグローバル オブジェクトの違いの概要

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 をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nodejs 学習ノート: グローバル オブジェクト

<<:  Zabbix による SQL Server の監視プロセスの詳細な説明

>>:  CentOS7にMySQL 8.0.26をインストールする手順

推薦する

MySQL 5.7 に組み込まれているストレス テストの mysqlslap コマンドと構文の詳細な説明

序文mysqlslap は、MySQL サーバーへのクライアント負荷をシミュレートし、各ステージの時...

クールなIoT大画面機能を実現するHTML+VUEページング

効果デモ.html <html> <ヘッド> <メタ文字セット=&qu...

MySQL 8.0.17 のインストールと設定のグラフィックチュートリアル

この記事は、参考のためにMySQL 8.0.17のインストールと設定のグラフィックチュートリアルを記...

docker run 起動パラメータ コマンドを表示する方法 (推奨)

runlike を使用してコンテナの docker run 起動パラメータを表示します。 pipを...

CSS で要素を垂直方向に中央揃えする 7 つの方法

【1】中央の要素の幅と高さを知る絶対値 + 負のマージンコードの実装 .wrapBox5{ 幅: 3...

初心者のためのWebサイト構築入門 ③ エイリアス(CNAME)レコードとURL転送

①. エイリアス(CNAME)レコードの使用方法:前回の投稿のドメイン名解決では、A レコードの解...

MySQLはPartition関数を使用して水平分割戦略を実装します。

目次1件のレビュー2 水平分割の5つの戦略2.1 ハッシュ2.2 範囲2.3. キー2.4. リスト...

Linux で PHP curl 拡張機能をインストールする方法の詳細な説明

この記事では、Linux で PHP curl 拡張機能をインストールする方法について説明します。ご...

MySQLデータベース移行により、大量のデータを迅速にエクスポートおよびインポートできます

データベースの移行は、よく遭遇する問題です。データ量が少ない場合、移行は基本的に問題になりません。実...

JavaScript における var と let の違い

目次1. スコープはさまざまな方法で表現されます2. 変動昇進と非昇進の違い3. 一時的なデッドゾー...

CSS の両端揃えを実現する div+css レイアウトの 4 つの方法の概要

2 端揃えを実現する div+css レイアウトは、Web ページの組版でよく使用されます。この記事...

jsとcssのブロッキング問題の詳細な分析

目次DOMContentLoadedとロードjs ブロッキングとは何ですか? CSS ブロッキングと...

ウェブサイトの高速化における CDN、SCDN、DCDN の違いは何ですか?どうやって選ぶ?

1. CDNこれは、Web サイト上で最もよく使用される加速機能です。分散サーバー レイアウトによ...

Vue3はJingdong製品詳細ページの虫眼鏡効果コンポーネントをカプセル化します

この記事では、Jingdong製品詳細ページの虫眼鏡効果コンポーネントに似たvue3カプセル化の具体...