替代方案源自《你不知道的js》bash
在ES6的環境中咱們能夠使用let來簡單聲明一個塊做用域,可是在ES6以前的環境中,如何實現呢? 例:性能
{
let a = 2;
console.log(a); // 2
}
console.log(a); // ReferenceError
複製代碼
這段代碼在ES6環境中能夠正常工做,但如果在ES6以前的環境中,須要變成下面的樣子:ui
try {
throw 2;
} catch(a) {
console.log(a); // 2
}
console.log(a); // ReferenceError
複製代碼
catch分句具備塊做用域,所以它能夠做爲塊級做用域的替代方案,但缺點卻很明顯,一是又醜又奇怪,二是性能比較糟糕spa