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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

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

3 回答

?
函數(shù)式編程

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

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

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

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


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

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

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

全球范圍

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

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

請(qǐng)注意,這被廣泛認(rèn)為是個(gè)壞主意,因?yàn)樗鼓膽?yīng)用程序具有很強(qiá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)中聲明一個(gè)新變量,那么只要仍然在父函數(shù)中,它也可以在該循環(huán)之外訪問:

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

遮蔽

如果您‘重新聲明’了一個(gè)現(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'


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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