天天看點

let

let是es6中聲明變量的一個重要方式:其目的就是為了限制作用域提升。

塊級聲明用于聲明在指定塊的作用域之外無法通路的變量。塊級作用域(亦被稱為詞法作用域)存在于:

  • 函數内部
  • 塊中(字元 { 和 } 之間的區域)

塊内的可以通路塊外的,塊的兄弟之間不能通路,塊不能通路塊的子集

作用域代碼如下:可以看到無論flag是什麼,最終結果name其實是勢必被建立。

function getName(flag) {
    if(flag) {
      var name ="凡夫俗子";
    }else {
      return null
    }
    console.log(name) //undefined
  },
 //其實上述代碼因為變量提升會變為以下:
   function getName(flag) {
   var name
    if(flag) {
     name ="凡夫俗子";
    }else {
      return null
    }
    console.log(name) //undefined
  },      
function getName(flag) {
    if(flag) {
      let name ="凡夫俗子";
    }else {
      return null
    }
    console.log(name) //undefined
  }      
//子塊通路父塊當然是可以的
function handle() {
  let i = 1;
  for(i;i<9;i++) {
  console.log(i)
   }
}      
//這個i就相當于是是聲明在了for的 { }中,在外是通路不了的
 for(let i = 1;i<9;i++) {
  console.log(i)
   }