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

首頁 > 編程 > JavaScript > 正文

淺談Nodejs中的作用域問題

2019-11-19 18:15:51
字體:
來源:轉載
供稿:網友

在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以外還有一種方法,后面我們會說到。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石景山区| 乌拉特后旗| 大洼县| 清徐县| 阜平县| 乌拉特后旗| 南投县| 雅江县| 梨树县| 化德县| 小金县| 堆龙德庆县| 张家港市| 洛川县| 洛南县| 牟定县| 潮州市| 河西区| 昆山市| 山阴县| 大埔区| 太湖县| 新绛县| 灌云县| 理塘县| 上思县| 西藏| 卢氏县| 新龙县| 蒙山县| 浦东新区| 南乐县| 东乡县| 南川市| 高唐县| 泸溪县| 峨眉山市| 榆树市| 昌乐县| 大方县| 花垣县|