欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nodejs與瀏覽器中全局對象區(qū)別點(diǎn)總結(jié)

 更新時(shí)間:2021年12月05日 09:48:10   作者:青燈夜游  
在本篇文章里小編給大家整理的是一篇關(guān)于nodejs與瀏覽器中全局對象區(qū)別點(diǎn)總結(jié)內(nèi)容,對此有需要的朋友們可以學(xué)習(xí)下。

Node.js中,一個(gè).js文件就是一個(gè)完整的作用域(module,模塊)。因此 var 聲明的變量只在當(dāng)前.js文件中有效,而不是全局有效。 而global全局對象是獨(dú)立于所有的.js(module,模塊)之上的。

而在瀏覽器中的最頂層全局對象是window,var聲明的變量默認(rèn)綁定到window對象上

1. 全局對象的定義

概念:在程序的任何地方都可以訪問的對象,稱之為全局對象。對象的屬性稱為全局變量。

2. NodeJS中的全局變量總結(jié)

這里我們總結(jié)下在nodejs中,我們常用的全局變量有哪些

2.1 Buffer類

Buffer,我們也可以稱為“緩沖區(qū)”,其功能就是在內(nèi)存中開辟一片區(qū)域,用來存放二進(jìn)制數(shù)據(jù)。

2.2 __dirname

__dirname,返回當(dāng)前模塊文件解析過后所在的文件夾(目錄)的絕對路徑。

請記住,__dirname并不是真正的全局變量。

2.3 __filename

__filename,返回當(dāng)前模塊文件被解析過后的絕對路徑。

請記住,__filename并不是真正的全局變量。

2.4 module

請記住,module并不是真正的全局變量。

2.5 require()

請記住,require()并不是真正的全局變量。

2.6 exports

請記住,exports并不是真正的全局變量。

2.7 setImmediate和clearImmediate

2.8 setTimeout和clearTimeout

2.9 setInterval 和 clearInterval

2.10 console

用于打印到標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤

2.11 process

process 對象提供有關(guān)當(dāng)前 Node.js 進(jìn)程的信息并對其進(jìn)行控制。

2.12 URL

URL 用于網(wǎng)址處理和解析的實(shí)用工具

2.13 events

events模塊是Node對“發(fā)布/訂閱”模式(publish/subscribe)的實(shí)現(xiàn)。一個(gè)對象通過這個(gè)模塊,向另一個(gè)對象傳遞消息。該模塊通過EventEmitter屬性,提供了一個(gè)構(gòu)造函數(shù)。

3. globalThis

3.1 globalThis是什么?

JS 語言越來越多被用于各種環(huán)境中。除了最常見的瀏覽器之外,它還可以在服務(wù)器、智能手機(jī)甚至機(jī)器人硬件上運(yùn)行。

每個(gè)環(huán)境都有其自己的對象模型,并提供了不同的語法來訪問全局對象。例如,在 Web 瀏覽器中,可以通過window,self或frames訪問全局對象。但是,在 Node.js 中,這些屬性不存在,而必須使用global。

globalThis旨在通過定義一個(gè)標(biāo)準(zhǔn)的全局屬性來整合日益分散的訪問全局對象的方法。該提案被納入ES2020標(biāo)準(zhǔn)。所有流行的瀏覽器,包括Chrome 71+、Firefox 65+和Safari 12.1+,都已經(jīng)支持這項(xiàng)功能。你也可以在Node.js 12+中來使用它。

內(nèi)容擴(kuò)展:

NodeJS - global全局對象

function global() {
    // 全局變量。__filename 表示當(dāng)前正在執(zhí)行的腳本的文件名。
    console.info('__filename: ' + __filename ); // __filename: D:\github\nodejs-test\requestHandlers.js

    // 全局變量。__dirname 表示當(dāng)前執(zhí)行腳本所在的目錄。
    console.info('__dirname : ' + __dirname  ); // __dirname : D:\github\nodejs-test

    // 全局函數(shù)。setTimeout(cb, ms) 全局函數(shù)在指定的毫秒(ms)數(shù)后執(zhí)行指定函數(shù)(cb)。setTimeout() 只執(zhí)行一次指定函數(shù)。返回一個(gè)代表定時(shí)器的句柄值。
    setTimeout(function () {
        console.info('setTimeout: 我只執(zhí)行一次。');
    }, 2000);

    // 全局函數(shù)。clearTimeout( t ) 全局函數(shù)用于停止一個(gè)之前通過 setTimeout() 創(chuàng)建的定時(shí)器。 參數(shù) t 是通過 setTimeout() 函數(shù)創(chuàng)建的定時(shí)器。
    let t = setTimeout(function () {
        console.info('clearTimeout: 我沒辦法執(zhí)行了。');
    }, 2000);
    clearTimeout(t); // 清除定時(shí)器

    // 全局函數(shù)。setInterval(cb, ms) 全局函數(shù)在指定的毫秒(ms)數(shù)后執(zhí)行指定函數(shù)(cb)。
    let tt = setInterval(function () {
        console.info('setInterval: 我每2秒執(zhí)行一次。');
    }, 2000);

    // 全局函數(shù)。setInterval() 方法會(huì)不停地調(diào)用函數(shù),直到 clearInterval() 被調(diào)用或窗口被關(guān)閉。
    setTimeout(function () {
        clearInterval(tt); // 清除定時(shí)器
    }, 5000);

    // 全局對象。console
    console.info('console: 我也屬于global。');

    // 全局變量。global 對象的屬性。process
    console.info('process 當(dāng)前目錄: ' + process.cwd()); // 輸出當(dāng)前目錄
    console.info('process 當(dāng)前版本: ' + process.version); // 輸出當(dāng)前版本
    console.info('process 平臺(tái)信息: ' + process.platform); // 輸出平臺(tái)信息
}

輸出:

__filename: D:\github\nodejs-test\requestHandlers.js
__dirname : D:\github\nodejs-test
console: 我也屬于global。
process 當(dāng)前目錄: D:\github\nodejs-test
process 當(dāng)前版本: v10.15.3
process 平臺(tái)信息: win32
setTimeout: 我只執(zhí)行一次。
setInterval: 我每2秒執(zhí)行一次。
setInterval: 我每2秒執(zhí)行一次。

到此這篇關(guān)于nodejs與瀏覽器中全局對象區(qū)別點(diǎn)總結(jié)的文章就介紹到這了,更多相關(guān)nodejs中的全局對象講解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Node爬取大批量文件的方法示例

    Node爬取大批量文件的方法示例

    這篇文章主要介紹了Node爬取大批量文件的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 詳解使用抽象語法樹AST實(shí)現(xiàn)一個(gè)AOP切面邏輯

    詳解使用抽象語法樹AST實(shí)現(xiàn)一個(gè)AOP切面邏輯

    這篇文章主要為大家介紹了使用抽象語法樹AST實(shí)現(xiàn)一個(gè)AOP切面邏輯的簡單方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • nodejs 如何手動(dòng)實(shí)現(xiàn)服務(wù)器

    nodejs 如何手動(dòng)實(shí)現(xiàn)服務(wù)器

    這篇文章主要介紹了nodejs 如何手動(dòng)實(shí)現(xiàn)服務(wù)器,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • node.js實(shí)現(xiàn)為PDF添加水印的示例代碼

    node.js實(shí)現(xiàn)為PDF添加水印的示例代碼

    這篇文章主要介紹了node.js實(shí)現(xiàn)為PDF添加水印的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • koa-router源碼學(xué)習(xí)小結(jié)

    koa-router源碼學(xué)習(xí)小結(jié)

    這篇文章主要介紹了koa-router源碼學(xué)習(xí)小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 淺談在koa2中實(shí)現(xiàn)頁面渲染的全局?jǐn)?shù)據(jù)

    淺談在koa2中實(shí)現(xiàn)頁面渲染的全局?jǐn)?shù)據(jù)

    本篇文章主要介紹了淺談在koa2中實(shí)現(xiàn)頁面渲染的全局?jǐn)?shù)據(jù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • 說說node中的可讀流和可寫流的區(qū)別

    說說node中的可讀流和可寫流的區(qū)別

    這篇文章主要介紹了說說node中的可讀流和可寫流的區(qū)別,詳細(xì)的介紹了可讀流和可寫流,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • 如何讓node運(yùn)行es6模塊文件及其原理詳解

    如何讓node運(yùn)行es6模塊文件及其原理詳解

    這篇文章主要介紹了如何讓node運(yùn)行es6模塊文件及其原理詳解,詳細(xì)的介紹了2種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • 解決Linux無法正常安裝與卸載Node.js的方法

    解決Linux無法正常安裝與卸載Node.js的方法

    最近在學(xué)習(xí)node.js,所以下面這篇文章主要給大家介紹了關(guān)于如何解決Linux無法正常安裝與卸載Node.js的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • NodeJS基礎(chǔ)API搭建服務(wù)器詳細(xì)過程記錄

    NodeJS基礎(chǔ)API搭建服務(wù)器詳細(xì)過程記錄

    本文將以一個(gè)超小型web項(xiàng)目,來詳細(xì)介紹如何使用NodeJS基礎(chǔ)的http, fs, path, url等模塊提供的API來搭建一個(gè)簡單的web服務(wù)器。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-04-04

最新評論