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 の NULL 値に関する体験談と分析チュートリアルシリーズ

目次1. テストデータ2. ヌル値による不便3. スペース、空の値、null をどのように判断すれば...

MySQLでテーブルを作成し、フィールドコメントを追加する方法

コードと例を直接投稿する #テーブル作成時にコメントを記述する CREATE TABLE useri...

CSSは半透明の境界と複数の境界のシーン分析を実現します

シナリオ 1:半透明の境界線を実現するには: CSS スタイルのデフォルトの動作により、背景色はコン...

HTML タグ: サブタグと sup タグ

今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。関連記事: HTML タ...

HTML と埋め込み Flash の両方におけるスクロールバーの分析と処理

開発を行う際に、次のような状況に遭遇することがよくあります。 a.swf が Web ページに追加さ...

ウェブページ制作でウェブフォントファイルにベクターアイコンを追加する方法

ご存知のとおり、コンピューターには 2 種類の画像があり、1 つはビットマップ、もう 1 つはベクタ...

Kylin V10 サーバーで Storm をコンパイルしてインストールする詳細なプロセス

1 はじめにApache Storm は、Hadoop と同様に、大量のデータを処理するために使用で...

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

Node.js では、.js ファイルは完全なスコープ (モジュール) です。したがって、var に...

MySQLカスタム関数とストアドプロシージャの詳細な説明

序文この記事では主にMySQLのカスタム関数とストアドプロシージャに関する関連コンテンツを紹介し、皆...

SSH ポート転送、ローカル ポート転送、リモート ポート転送、動的ポート転送の詳細

パート 1 SSH ポート転送の概要カフェで無料Wi-Fiを利用しているとき、誰かがあなたのパスワー...

虫眼鏡コンポーネントのネイティブ js 実装

この記事の例では、参考までに虫眼鏡コンポーネントを開発するためのjsの具体的なコードを共有しています...

MySQL8.0.18 複数マスターと 1 スレーブの構成

目次1. 現実的な背景2. 合意3. マスターを構成する3.1. 起動パラメータの設定3.2. パラ...

Photoshop を使って Web ワイヤーフレームを作成する方法

この投稿では、通知、画像とビデオ、フォーム フィールド、タイトル、段落、箇条書きリスト、ナビゲーショ...

CSS3 FlexBox の伸縮自在なレイアウトを 10 分で理解する

基本的な紹介特徴Flexbox は、よりシンプルで効率的なレイアウト方法を提供する CSS 表示タイ...

MySQL MHA 操作ステータス監視の概要

目次1. プロジェクトの説明1.1 背景1.2 実装設計1.2.1 従来の方法1.2.2 最適化され...