亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談Nodejs中的作用域問題

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

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

js作用域:

以前學(xué)js的時(shí)候我們的全局對象是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ù)外部是訪問不了函數(shù)內(nèi)部的變量的,雖然可以通過閉包來訪問函數(shù)中的變量,但這不是我要說的重點(diǎn),這也就是函數(shù)作用域。

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

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

global.web = "Nodejs";

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

require('./1.js');

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

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

ok,

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    Node.js使用Angular簡單示例

    這篇文章主要介紹了Node.js使用Angular簡單示例,如何在Node.js項(xiàng)目中引入AngularJS,這次提供一個(gè)非常簡單的示例,演示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)資料,文中通過示例示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • 前端Electron新手入門教程詳解

    前端Electron新手入門教程詳解

    這篇文章主要介紹了Electron新手入門教程詳解,首先圍繞Electron框架的關(guān)鍵知識點(diǎn)進(jìn)行詳細(xì)講解,然后對DEMO程序進(jìn)行分析,讓前端開發(fā)人員對使用Electron開發(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)證的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12

最新評論