第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

模塊變量存儲在node.js中的作用域是什么?

模塊變量存儲在node.js中的作用域是什么?

翻閱古今 2019-07-04 17:39:12
模塊變量存儲在node.js中的作用域是什么?當(dāng)我在node.js模塊中這樣做時:var abc = '123';它到哪里去了?我的意思是:在瀏覽器中window.abc(如果沒有在函數(shù)中執(zhí)行或以其他方式執(zhí)行)如果我執(zhí)行這個:abc = '123';然后我就能在里面找到它global.abc但這不是我想要的。
查看完整描述

3 回答

?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗 獲得超9個贊

與默認(rèn)將變量分配給全局空間(即窗口)的瀏覽器不同,節(jié)點變量的作用域為模塊(文件)。除非你明確把它們分配給模組。

事實上,當(dāng)你跑node myfile.jsrequire('somefile.js')文件中的代碼包裝如下:

(function (exports, require, module, __filename, __dirname) {
     // your code is here});


查看完整回答
反對 回復(fù) 2019-07-04
?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗 獲得超6個贊

所有其他答案都是100%正確的,但我想我應(yīng)該在Node.js應(yīng)用程序中添加一個擴展的/確定的范圍列表,以防任何人在開始學(xué)習(xí)Node.js或JavaScript時通過Google發(fā)現(xiàn)這一點:

全球范圍

任何聲明沒有var任何文件中的關(guān)鍵字都可以從節(jié)點服務(wù)器的同一實例中運行的任何位置訪問:

// foo.jsbar = 'baz';// qux.jsconsole.log(bar); // prints 'baz'

請注意,這被廣泛認(rèn)為是個壞主意,因為它使您的應(yīng)用程序具有很強的“耦合性”-這意味著您必須打開foo.js才能找到原因。bar = 'baz'在qux.js中

模塊范圍

聲明的任何內(nèi)容。var在node.js文件的頂層(而不是在函數(shù)或?qū)ο蠡蛉魏纹渌麎K內(nèi))的關(guān)鍵字位于模塊范圍,并且可以從同一文件中的任何位置訪問,但在其他任何地方都不存在:

// foo.jsvar bar = 'baz';console.log(bar); // prints 'baz'// qux.jsconsole.log(bar); // prints 'undefined'

功能范圍

使用var函數(shù)中的關(guān)鍵字只能從該函數(shù)中訪問,而不能從其他任何地方訪問:

// foo.jsfunction myFunction() {
  var bar = 'baz';
  console.log(bar); // prints 'baz'}function myOtherFunction() {
  console.log(bar); // prints 'undefined'}// qux.jsconsole.log(bar); // prints 'undefined'

JavaScript是功能范圍..不像其他(塊作用域)語言,在函數(shù)塊中聲明的變量可以從父函數(shù)中的任何其他地方訪問。..例如,這意味著如果在循環(huán)中聲明一個新變量,那么只要仍然在父函數(shù)中,它也可以在該循環(huán)之外訪問:

function myFunction() {
  while (thing === true) {
  var bar = 'baz';
  thing = false;
  }
  console.log(bar); // prints 'baz'}

遮蔽

如果您‘重新聲明’了一個現(xiàn)有變量,例如使用var關(guān)鍵字,其變量名已被使用,則與該變量名關(guān)聯(lián)的值為在新聲明的范圍內(nèi)覆蓋:

var bar = 'foo';console.log(bar) // prints 'foo'function myFunction() {
  var bar = 'baz';
  console.log(bar);}myFunction(); // prints 'baz'console.log(bar) // prints 'foo'


查看完整回答
反對 回復(fù) 2019-07-04
  • 3 回答
  • 0 關(guān)注
  • 776 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號