本文小編為大家詳細(xì)介紹“es6中引入的作用域是什么”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“es6中引入的作用域是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
為阿拉善盟等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及阿拉善盟網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、阿拉善盟網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
es6中引入了“塊級(jí)作用域”;es5中只有全局作用域和函數(shù)作用域,es6中由一對(duì)大括號(hào)包裹形成的作用域就是塊級(jí)作用域,并明確允許在塊級(jí)作用域中聲明函數(shù),函數(shù)聲明語(yǔ)句的行為類(lèi)似于let,在塊級(jí)作用域之外不可引用。
本教程操作環(huán)境:windows10系統(tǒng)、ECMAScript 6.0版、Dell G3電腦。
ES6 引入了塊級(jí)作用域,明確允許在塊級(jí)作用域之中聲明函數(shù)。ES6 規(guī)定,塊級(jí)作用域之中,函數(shù)聲明語(yǔ)句的行為類(lèi)似于let,在塊級(jí)作用域之外不可引用。
ES6標(biāo)準(zhǔn)中,由一對(duì)大括號(hào)包裹形成的作用域就是塊級(jí)作用域。
ES5 規(guī)定,函數(shù)只能在頂層作用域和函數(shù)作用域之中聲明,不能在塊級(jí)作用域聲明。
ES5 只有全局作用域和函數(shù)作用域,沒(méi)有塊級(jí)作用域,這帶來(lái)很多不合理的場(chǎng)景。
(1)內(nèi)層變量可能會(huì)覆蓋外層變量。
var tmp = new Date(); function f() { console.log(tmp); if (false) { var tmp = 'hello world'; } } f();//undefined
(2)用來(lái)計(jì)數(shù)的循環(huán)變量泄露為全局變量
var s = 'hello'; for (var i = 0; i < s.length; i++) { console.log(s[i]);//h e l l o } console.log(i);//5
變量i只用來(lái)控制循環(huán),但是循環(huán)結(jié)束后,它并沒(méi)有消失,泄露成了全局變量。
示例如下:
// 瀏覽器的 ES6 環(huán)境 function f() { console.log('I am outside!'); } (function () { if (false) { // 重復(fù)聲明一次函數(shù)f function f() { console.log('I am inside!'); } } f(); }()); // Uncaught TypeError: f is not a function
在ES6標(biāo)準(zhǔn)中,在塊級(jí)作用域中聲明函數(shù),會(huì)將函數(shù)聲明當(dāng)做由var聲明的變量,提升到塊級(jí)作用域頂部,只將函數(shù)當(dāng)做變量進(jìn)行變量名聲明,并不會(huì)聲明函數(shù)體,上述代碼相當(dāng)于:
// 瀏覽器的 ES6 環(huán)境 function f() { console.log('I am outside!'); } (function () { var f = undefined; if (false) { function f() { console.log('I am inside!'); } } f(); }()); // Uncaught TypeError: f is not a function
讀到這里,這篇“es6中引入的作用域是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。