怎樣理解塊級作用域


在ES6 之前, JavaScript中有三種作用域: 

1. 全局作用域

2. 函數作用域

3. eval作用域

以上作用域內聲明的變量或方法只在當前作用域內有效, 在其他作用域內引用則會返回 undefined;

 

而ES6則新增了一個作用域: 塊級作用域

塊級作用域可以簡單理解為是: 包在大括號{}里面的內容, 它可以自成一個作用域, 但ES5中也有大括號, 可ES5中並沒有塊級作用域, 這時該怎樣判斷 {} 是否具有塊級作用域的特點?

這時就得用到 letconst

 

因此, 可以將塊級作用域理解為: 使用let和const聲明的變量, 只在當前大闊號內生效, 由此構建出了 塊級作用域 這么個東西.

這里的 "大括號內" 主要指的下面幾種情況: 

// 條件語句
if () {}

// switch語句
switch () {}

// for / while循環語句
for () {}
while () {}

// try...catch語句
try () catch (err) {}

// 單大括號
{}

 

注意: 對象的大括號內不是一個塊級作用域, 因為它里面不能直接聲明變量; 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM