塊級做用域的替代方案

替代方案源自《你不知道的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

相關文章
相關標籤/搜索