成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

通過(guò)分析這段代碼的進(jìn)化歷程,或許能夠加深您對(duì)JavaScript的作用域的理解

goji / 2991人閱讀

摘要:前言這里我們不討論作用域鏈的問(wèn)題,這些問(wèn)題您可以看下我之前寫的東西,通過(guò)這一段代碼,讓我們重新認(rèn)識(shí)。這回我們主要來(lái)分享一下,中作用域的創(chuàng)建方式。立即執(zhí)行函數(shù)是個(gè)不錯(cuò)的選擇,但具名的立即執(zhí)行函數(shù)可以讓代碼本身更具有可讀性,是個(gè)最佳實(shí)踐。

前言

這里我們不討論作用域鏈的問(wèn)題,這些問(wèn)題您可以看下我之前寫的東西,通過(guò)這一段代碼,讓我們重新認(rèn)識(shí)JavaScript。
這回我們主要來(lái)分享一下,JavaScript中作用域的創(chuàng)建方式。

代碼

通過(guò)理解代碼來(lái)記住知識(shí)點(diǎn)是最快的,面試官問(wèn)道類似的問(wèn)題的時(shí)候,舉個(gè)代碼的例子就大家都懂了,勝過(guò)任何含糊的概念描述,所以我們來(lái)看一下這個(gè)代碼的例子吧。

rank-01

請(qǐng)思考輸出結(jié)果,for循環(huán)的{}能創(chuàng)建一個(gè)作用域嗎?

for (var i = 0; i < 2; i++) {
    console.log("in for:"+i);
}
console.log("out for:"+i);
rank-02

請(qǐng)思考代碼運(yùn)行結(jié)果,function應(yīng)該能創(chuàng)建作用域吧?

function forscope(){
    for (var i = 0; i < 2; i++) {
        console.log("in for:"+i);
    }
};
forscope();
console.log("out for:"+i);
rank-03

為什么這樣寫會(huì)更好呢?

(function(){
    for (var i = 0; i < 2; i++) {
        console.log("in for:"+i);
    }
})();
console.log("out for:"+i);
rank-04-a

老外說(shuō),這樣子寫才是最佳實(shí)踐,您看出來(lái)門道了嗎?

(function forscope(){
    for (var i = 0; i < 2; i++) {
        console.log("in for:"+i);
    }
})();
console.log("out for:"+i);
rank-04-b

這樣寫太鬼了吧?

try{
    undefined();
}catch(i){
    for (i = 0; i < 2; i++) {
        console.log("in for:"+i);
    }
}
console.log("out for:"+i);
rank-es6-01

現(xiàn)在能體會(huì)到es6中l(wèi)et存在的意義了吧?

for (let i = 0; i < 2; i++) {
    console.log("in for:"+i);
}
console.log("out for:"+i);
rank-es6-02

據(jù)說(shuō)這才是最佳實(shí)踐!

{
    let i;
    for (i = 0; i < 2; i++) {
        console.log("in for:"+i);
    }
}
console.log("out for:"+i);
總結(jié)

function,try catch均可以創(chuàng)建作用域,可以使用它們來(lái)更好地保護(hù)代碼細(xì)節(jié),一般還是用function,try catch一般是代碼轉(zhuǎn)換器會(huì)用的。

立即執(zhí)行函數(shù)(function(){...})();是個(gè)不錯(cuò)的選擇,但具名的立即執(zhí)行函數(shù)可以讓代碼本身更具有可讀性,是個(gè)最佳實(shí)踐(function forscope(){...})();。

es6中l(wèi)et可以隱式地和最近的{}一起創(chuàng)建一個(gè)作用域,但顯示地創(chuàng)建能夠方便之后代碼塊的移動(dòng),是個(gè)最佳實(shí)踐。

其他

參考書

《你不知道的JavaScript(上卷)》第一部分,亞馬遜電子書9.9元,強(qiáng)力推薦

網(wǎng)站

在線es6編輯器,https://babeljs.io/repl/

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79341.html

相關(guān)文章

  • 理解JavaScript核心知識(shí)點(diǎn):作用

    摘要:也毫不例外,但在中作用域的特性與其他高級(jí)語(yǔ)言稍有不同,這是很多學(xué)習(xí)者久久難以理清的一個(gè)核心知識(shí)點(diǎn)。主要使用的是函數(shù)作用域。 關(guān)于作用域:About Scope 作用域是程序設(shè)計(jì)里的基礎(chǔ)特性,是作用域使得程序運(yùn)行時(shí)可以使用變量存儲(chǔ)值、記錄和改變程序的狀態(tài)。JavaScript 也毫不例外,但在 JavaScript 中作用域的特性與其他高級(jí)語(yǔ)言稍有不同,這是很多學(xué)習(xí)者久久難以理清的一個(gè)核...

    HelKyle 評(píng)論0 收藏0
  • javascript作用域和閉包之我見

    摘要:查詢是在作用域鏈中,一級(jí)級(jí)的往上查找該變量的引用。作用域和作用域鏈作用域的概念,應(yīng)該兩張圖幾句話就能解釋吧。這個(gè)建筑代表程序中的嵌套作用域鏈。一層嵌一層的作用域形成了作用域鏈,變量在作用域鏈中的函數(shù)內(nèi)得到了自己的定義。 javascript作用域和閉包之我見 看了《你不知道的JavaScript(上卷)》的第一部分——作用域和閉包,感受頗深,遂寫一篇讀書筆記加深印象。路過(guò)的大牛歡迎指點(diǎn)...

    SoapEye 評(píng)論0 收藏0
  • javascript 閉包 ---- js進(jìn)化之路

    摘要:閉包利用的,其實(shí)就是作用域嵌套情況下,內(nèi)部作用域可以訪問(wèn)外部作用域這一特性。之所以要將閉包和垃圾回收策略聯(lián)系在一起,是因?yàn)檫@涉及到閉包的一些重要特性,如變量暫時(shí)存儲(chǔ)和內(nèi)存泄漏。因?yàn)槟涿瘮?shù)回調(diào)的閉包實(shí)際引用的是變量,而非變量的值。 本文旨在總結(jié)在js學(xué)習(xí)過(guò)程中,對(duì)閉包的思考,理解,以及一些反思,如有不足,還請(qǐng)大家指教 閉包---closure 閉包是js中比較特殊的一個(gè)概念,其特殊之處...

    HtmlCssJs 評(píng)論0 收藏0
  • 你應(yīng)該要知道作用域和閉包

    摘要:寫在前面對(duì)于一個(gè)前端開發(fā)者,應(yīng)該沒(méi)有不知道作用域的。欺騙詞法作用域有兩個(gè)機(jī)制可以欺騙詞法作用域和。關(guān)于你不知道的的第一部分作用域和閉包已經(jīng)結(jié)束了,但是,更新不會(huì)就此止住未完待續(xù) 這是《你不知道的JavaScript》的第一部分。 本系列持續(xù)更新中,Github 地址請(qǐng)查閱這里。 寫在前面 對(duì)于一個(gè)前端開發(fā)者,應(yīng)該沒(méi)有不知道作用域的。它是一個(gè)既簡(jiǎn)單有復(fù)雜的概念,簡(jiǎn)單到每行代碼都有它的影子...

    JouyPub 評(píng)論0 收藏0
  • 閉包有話說(shuō)

    摘要:請(qǐng)用一句話描述什么是閉包,并寫出代碼進(jìn)行說(shuō)明。閉包的使用場(chǎng)景使用閉包可以在中模擬塊級(jí)作用域閉包可以用于在對(duì)象中創(chuàng)建私有變量。 引言 剛學(xué)習(xí)前端的時(shí)候,看到閉包這個(gè)詞,總是一臉懵逼,面試的時(shí)候,問(wèn)到這個(gè)問(wèn)題,也是回答的含含糊糊,總感覺(jué)有層隔膜,覺(jué)得這個(gè)概念很神奇,如果能掌握,必將功力大漲。其實(shí),閉包沒(méi)有這么神秘,它無(wú)處不在。 一個(gè)簡(jiǎn)短的的問(wèn)題 首先,來(lái)看一個(gè)問(wèn)題。 請(qǐng)用一句話描述什么是閉...

    techstay 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<