今天小編給大家分享一下javascript的塊級(jí)作用域有什么作用的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
汶上網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
塊級(jí)作用域的作用:解決由于過(guò)多全局變量和函數(shù)產(chǎn)生的命名沖突。JavaScript會(huì)對(duì)重復(fù)的聲明視而不見(jiàn),從而導(dǎo)致運(yùn)行結(jié)果出錯(cuò),而塊級(jí)作用域就可以解決這個(gè)問(wèn)題,讓每個(gè)開(kāi)發(fā)人員可以使用自己的變量,而不用擔(dān)心搞亂全局作用域。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
任何一對(duì)花括號(hào)({和})中的語(yǔ)句集都屬于一個(gè)塊,在這之中定義的所有變量在代碼塊外都是不可見(jiàn)的,我們稱(chēng)之為塊級(jí)作用域,例如for、while、if
而JavaScript不具有塊級(jí)作用域(在es6標(biāo)準(zhǔn)出來(lái)之前,javascript是不存在塊級(jí)作用域的),即在javascript的代碼塊中定義一個(gè)變量,在該代碼塊外面仍可使用該變量,例如:
在Java、C++等語(yǔ)言中,變量i只會(huì)在for循環(huán)的語(yǔ)句塊中有定義,循環(huán)一旦結(jié)束,變量i就會(huì)被銷(xiāo)毀。但是在JavaScript中,變量i是定義在outputNumbers()的活動(dòng)對(duì)象中的,因此從它有定義開(kāi)始,就可以在函數(shù)內(nèi)部隨處訪問(wèn)它。
塊級(jí)作用域可以解決由于過(guò)多全局變量和函數(shù)產(chǎn)生的命名沖突,因?yàn)镴avaScript會(huì)對(duì)重復(fù)的聲明視而不見(jiàn)(不過(guò),它會(huì)執(zhí)行后續(xù)聲明中的變量初始化),從而導(dǎo)致運(yùn)行結(jié)果出錯(cuò),而你很可能要花很大的力氣才能發(fā)現(xiàn)這個(gè)錯(cuò)誤。
在由一個(gè)很多開(kāi)發(fā)人員編寫(xiě)的大型應(yīng)用程序中,私有作用域的應(yīng)用可以使得每個(gè)開(kāi)發(fā)人員可以使用自己的變量,而不用擔(dān)心搞亂全局作用域。
雖然js中沒(méi)有塊級(jí)作用域,但是可以用閉包/匿名函數(shù)來(lái)模仿塊級(jí)作用域。
塊級(jí)作用域(通常稱(chēng)為私有作用域)的匿名函數(shù)的語(yǔ)法如下:
(function(){ //這里是塊級(jí)作用域 })();
以上代碼定義并立即調(diào)用了一個(gè)匿名函數(shù)。將函數(shù)聲明包含在一對(duì)圓括號(hào)中,表示它實(shí)際上是一個(gè)函數(shù)表達(dá)式。而緊隨其后的另一對(duì)圓括號(hào)會(huì)立即調(diào)用這個(gè)函數(shù)。
一個(gè)在JavaScript中利用匿名函數(shù)實(shí)現(xiàn)塊級(jí)作用域的例子
function outputNumbers(count){ (function(){ for(var i=0;i例子中,在匿名函數(shù)中定義的任何變量,都會(huì)在執(zhí)行結(jié)束時(shí)被銷(xiāo)毀。因此,變量i只能在循環(huán)中使用,使用后即被銷(xiāo)毀。而在私有作用域中能夠訪問(wèn)變量count,是因?yàn)檫@個(gè)匿名函數(shù)是一個(gè)閉包,它能夠訪問(wèn)包含作用域中的所有變量。
什么時(shí)候可以使用私有作用域
無(wú)論在什么地方,只要臨時(shí)需要一些變量,就可以使用私有作用域
以上就是“javascript的塊級(jí)作用域有什么作用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享題目:javascript的塊級(jí)作用域有什么作用
網(wǎng)站地址:http://weahome.cn/article/ggejoi.html