91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs與瀏覽器中全局對象區別是什么

發布時間:2021-12-06 09:00:15 來源:億速云 閱讀:135 作者:iii 欄目:開發技術

這篇文章主要介紹“nodejs與瀏覽器中全局對象區別是什么”,在日常操作中,相信很多人在nodejs與瀏覽器中全局對象區別是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”nodejs與瀏覽器中全局對象區別是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

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

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

1. 全局對象的定義

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

2. NodeJS中的全局變量總結

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

2.1 Buffer類

Buffer,我們也可以稱為“緩沖區”,其功能就是在內存中開辟一片區域,用來存放二進制數據。

2.2 __dirname

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

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

2.3 __filename

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

請記住,__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

用于打印到標準輸出和標準錯誤

2.11 process

process 對象提供有關當前 Node.js 進程的信息并對其進行控制。

2.12 URL

URL 用于網址處理和解析的實用工具

2.13 events

events模塊是Node對“發布/訂閱”模式(publish/subscribe)的實現。一個對象通過這個模塊,向另一個對象傳遞消息。該模塊通過EventEmitter屬性,提供了一個構造函數。

3. globalThis

3.1 globalThis是什么?

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

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

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

內容擴展:

NodeJS - global全局對象

function global() {
    // 全局變量。__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() 只執行一次指定函數。返回一個代表定時器的句柄值。
    setTimeout(function () {
        console.info('setTimeout: 我只執行一次。');
    }, 2000);

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

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

    // 全局函數。setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。
    setTimeout(function () {
        clearInterval(tt); // 清除定時器
    }, 5000);

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

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

輸出:

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

到此,關于“nodejs與瀏覽器中全局對象區別是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太原市| 调兵山市| 四子王旗| 莱西市| 比如县| 修文县| 巫山县| 渑池县| 伊金霍洛旗| 板桥市| 比如县| 清徐县| 贡嘎县| 宝坻区| 个旧市| 东光县| 柳江县| 皋兰县| 宜黄县| 六盘水市| 阿拉善右旗| 大名县| 东辽县| 通许县| 微山县| 历史| 麻江县| 江口县| 石泉县| 仪陇县| 梓潼县| 县级市| 郯城县| 开原市| 乐东| 建阳市| 嵊州市| 黄龙县| 吉水县| 古浪县| 灵石县|