国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

淺談Nodejs中的作用域問題

2024-05-06 16:34:08
字體:
來源:轉載
供稿:網友

在JS中有全局作用域和函數作用域,而在Nodejs中也自己的作用域,分為全局作用域(global)和模塊作用域。

js作用域:

以前學js的時候我們的全局對象是window,如:

var a = 10;console.log(window.a);

我們定義的全局變量默認是給window添加一個屬性或者方法。

function fn(){  var num = 22;}console.log(num);

報錯,因為num是在函數中定義的,在函數外部是訪問不了函數內部的變量的,雖然可以通過閉包來訪問函數中的變量,但這不是我要說的重點,這也就是函數作用域。

好了,今天的重點來了,Nodejs中的作用域是什么樣的?

首先我在文件1.js中定義了一個全局變量,全局變量用global來定義。

global.web = "Nodejs";

然后我通過2.js來引用1.js文件

require('./1.js');

在nodejs中已經沒有了html,dom,和bom了,自然也沒有了script標簽,在node中如果需要引入一個文件則需要通過require方法來加載這個文件,里面寫對應的文件路徑,一般我們寫相對路徑,相對路徑前面需要加./如果是絕對路徑則用/。接下來我們在2.js中訪問一下這個全局變量。

console.log(global.web); //Nodejs

ok,

這比較簡單,一開始我還說了在Nodejs中還有模塊作用域,那模塊作用域又是什么?

說到模塊作用域,不得不提模塊化開發,如果你有過模塊化開發的經驗你一定曾經為了變量名而頭疼過,因為如果你寫的代碼和你同事寫的代碼不規范的話,那么在代碼中如果出現相同的變量名,那么后面的變量是會覆蓋之前的變量的,在js中我們可以通過函數來解決這個問題,而在nodejs中我們除了可以使用函數的作用域以外,nodejs還規定了一種模塊作用域,每個文件都是一個模塊,也就是說每個文件都有各自的作用域,如果你不通過global來定義變量另外一個文件是訪問不了這個文件的變量的。當然如果你想在一個文件訪問另外一個文件的變量,除了global以外還有一種方法,后面我們會說到。

 以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持VeVb武林網!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿克| 从化市| 洱源县| 陆丰市| 东乡族自治县| 临泽县| 营山县| 乌审旗| 肥乡县| 红原县| 绥德县| 莫力| 聊城市| 汨罗市| 中卫市| 海伦市| 招远市| 宁德市| 廉江市| 高邮市| 昭苏县| 枣阳市| 锦州市| 鄯善县| 额济纳旗| 丹棱县| 资阳市| 乐昌市| 湘潭市| 德钦县| 合江县| 河源市| 建德市| 阳城县| 山东| 高安市| 革吉县| 南京市| 沈丘县| 西宁市| 理塘县|