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

淺談Nodejs中的作用域問(wèn)題

 更新時(shí)間:2016年12月26日 11:32:28   作者:追夢(mèng)子  
在JS中有全局作用域和函數(shù)作用域,而在Nodejs中也自己的作用域,分為全局作用域(global)和模塊作用域。本文將對(duì)Nodejs中的作用域進(jìn)行介紹,需要的朋友一起來(lái)看下吧

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

js作用域:

以前學(xué)js的時(shí)候我們的全局對(duì)象是window,如:

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

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

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

報(bào)錯(cuò),因?yàn)閚um是在函數(shù)中定義的,在函數(shù)外部是訪問(wèn)不了函數(shù)內(nèi)部的變量的,雖然可以通過(guò)閉包來(lái)訪問(wèn)函數(shù)中的變量,但這不是我要說(shuō)的重點(diǎn),這也就是函數(shù)作用域。

好了,今天的重點(diǎn)來(lái)了,Nodejs中的作用域是什么樣的?

首先我在文件1.js中定義了一個(gè)全局變量,全局變量用global來(lái)定義。

global.web = "Nodejs";

然后我通過(guò)2.js來(lái)引用1.js文件

require('./1.js');

在nodejs中已經(jīng)沒(méi)有了html,dom,和bom了,自然也沒(méi)有了script標(biāo)簽,在node中如果需要引入一個(gè)文件則需要通過(guò)require方法來(lái)加載這個(gè)文件,里面寫對(duì)應(yīng)的文件路徑,一般我們寫相對(duì)路徑,相對(duì)路徑前面需要加./如果是絕對(duì)路徑則用/。接下來(lái)我們?cè)?.js中訪問(wèn)一下這個(gè)全局變量。

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

ok,

這比較簡(jiǎn)單,一開(kāi)始我還說(shuō)了在Nodejs中還有模塊作用域,那模塊作用域又是什么?

說(shuō)到模塊作用域,不得不提模塊化開(kāi)發(fā),如果你有過(guò)模塊化開(kāi)發(fā)的經(jīng)驗(yàn)?zāi)阋欢ㄔ?jīng)為了變量名而頭疼過(guò),因?yàn)槿绻銓懙拇a和你同事寫的代碼不規(guī)范的話,那么在代碼中如果出現(xiàn)相同的變量名,那么后面的變量是會(huì)覆蓋之前的變量的,在js中我們可以通過(guò)函數(shù)來(lái)解決這個(gè)問(wèn)題,而在nodejs中我們除了可以使用函數(shù)的作用域以外,nodejs還規(guī)定了一種模塊作用域,每個(gè)文件都是一個(gè)模塊,也就是說(shuō)每個(gè)文件都有各自的作用域,如果你不通過(guò)global來(lái)定義變量另外一個(gè)文件是訪問(wèn)不了這個(gè)文件的變量的。當(dāng)然如果你想在一個(gè)文件訪問(wèn)另外一個(gè)文件的變量,除了global以外還有一種方法,后面我們會(huì)說(shuō)到。

 以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • Node.js搭建小程序后臺(tái)服務(wù)

    Node.js搭建小程序后臺(tái)服務(wù)

    最近在做微信的應(yīng)用號(hào)小程序開(kāi)發(fā),小程序的后臺(tái)數(shù)據(jù)接口需要https安全請(qǐng)求,所以需要我的nodejs服務(wù)器能夠提供https的支持,現(xiàn)在就將整個(gè)https服務(wù)器的搭建過(guò)程說(shuō)一下
    2018-01-01
  • 詳解node-ccap模塊生成captcha驗(yàn)證碼

    詳解node-ccap模塊生成captcha驗(yàn)證碼

    本篇文章主要介紹了node-ccap模塊生成captcha驗(yàn)證碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • node.js連接mongoDB數(shù)據(jù)庫(kù) 快速搭建自己的web服務(wù)

    node.js連接mongoDB數(shù)據(jù)庫(kù) 快速搭建自己的web服務(wù)

    這篇文章主要為大家詳細(xì)介紹了node.js連接mongoDB數(shù)據(jù)庫(kù),如何快速搭建自己的web服務(wù),感興趣的小伙伴們可以參考一下
    2016-04-04
  • 史上無(wú)敵詳細(xì)的Node.Js環(huán)境搭建步驟記錄

    史上無(wú)敵詳細(xì)的Node.Js環(huán)境搭建步驟記錄

    Node.js是一個(gè)事件驅(qū)動(dòng)I/O服務(wù)端JavaScript環(huán)境,由于其擁有異步非阻塞、環(huán)境搭建簡(jiǎn)單、實(shí)踐應(yīng)用快等特性,使得其在新一代編程開(kāi)發(fā)中更為流行,下面這篇文章主要給大家介紹了關(guān)于Node.Js環(huán)境搭建步驟記錄的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • node.js操作mysql簡(jiǎn)單實(shí)例

    node.js操作mysql簡(jiǎn)單實(shí)例

    本文給大家介紹了nodejs 連接Mysql相關(guān)操作的示例代碼,主要用到的是sql語(yǔ)句,都是比較基礎(chǔ)的。
    2017-05-05
  • Nodejs核心模塊之net和http的使用詳解

    Nodejs核心模塊之net和http的使用詳解

    net和http模塊都是node核心模塊之一,他們都可以搭建自己的服務(wù)端和客戶端,以響應(yīng)請(qǐng)求和發(fā)送請(qǐng)求。這篇文章主要介紹了Nodejs核心模塊之net和http的使用詳解,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Node.js使用Angular簡(jiǎn)單示例

    Node.js使用Angular簡(jiǎn)單示例

    這篇文章主要介紹了Node.js使用Angular簡(jiǎn)單示例,如何在Node.js項(xiàng)目中引入AngularJS,這次提供一個(gè)非常簡(jiǎn)單的示例,演示AngularJS里的指令、數(shù)據(jù)綁定、服務(wù)等內(nèi)容。感興趣的小伙伴們可以參考一下
    2018-05-05
  • 利用node實(shí)現(xiàn)一個(gè)批量重命名文件的函數(shù)

    利用node實(shí)現(xiàn)一個(gè)批量重命名文件的函數(shù)

    這篇文章主要給大家介紹了關(guān)于利用node實(shí)現(xiàn)一個(gè)批量重命名文件的函數(shù)的相關(guān)資料,文中通過(guò)示例示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • 前端Electron新手入門教程詳解

    前端Electron新手入門教程詳解

    這篇文章主要介紹了Electron新手入門教程詳解,首先圍繞Electron框架的關(guān)鍵知識(shí)點(diǎn)進(jìn)行詳細(xì)講解,然后對(duì)DEMO程序進(jìn)行分析,讓前端開(kāi)發(fā)人員對(duì)使用Electron開(kāi)發(fā)桌面應(yīng)用程序有一個(gè)初步的了解。,需要的朋友可以參考下
    2019-06-06
  • Node.js中Express生成Token的實(shí)現(xiàn)方法

    Node.js中Express生成Token的實(shí)現(xiàn)方法

    本文介紹了在Express中生成和使用Token進(jìn)行用戶認(rèn)證的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12

最新評(píng)論