鍍金池/ 問答/HTML/ javascript 塊級代碼有什么作用

javascript 塊級代碼有什么作用

clipboard.png

clipboard.png

像圖中,為何要弄一個單獨的塊

回答
編輯回答
萌面人

ES6新增塊級作用域主要為const和let消費的,你如果在塊級作用域沒有用let和const聲明變量,其實等于if(true){}沒有什么區(qū)別

2017年12月10日 18:11
編輯回答
孤酒

js作為一個只用了兩個星期就完成設(shè)計編碼的語言,一開始只有函數(shù)作用域。可以看一下面這段代碼:

    functin exmple1(){ 
        for(var i=0;i<3;i++){ 
            //do something
        } 
        alert(i); 
    } 

在循環(huán)結(jié)束后,i仍然是可以訪問的,它將存在于整個函數(shù)調(diào)用的生命周期中,直到example1方法調(diào)用結(jié)束。這樣的后果就是別的程序員很可能對i變量帶來誤操作。

ES6對這個情況進行了改進,提出了用constlet聲明變量。通過這兩個修飾詞聲明的變量都會擁有塊級作用域。塊級作用域是指任何一對花括號({和})中的語句集。一旦一塊代碼執(zhí)行完畢,那么這塊代碼聲明的變量都將結(jié)束生命周期。因此,上面的代碼可以更改為:

    functin exmple2(){ 
        for(let i=0;i<3;i++){ 
            //do something
        } 
        alert(i); 
    } 

此時alert(i)語句將會輸出undefined。

2017年7月4日 14:40
編輯回答
青裙

說白了,塊級作用域的最重要的功能,就是為了不污染別的作用域里的變量,執(zhí)行完就沒了,你可以在多個作用域下定義同一個變量,相互不影響

2018年9月22日 08:17