1. 程式人生 > >var let const 的區別

var let const 的區別

var是ES6之前JavaScript用於定義變數的語法,而let const是ES6之後JavaScript用於定義變數的語法

更多精彩

var存在的兩個bug

  1. JS沒有塊級作用域
    • 通過var宣告的變數,其作用域是函式的全部
  2. 迴圈內變數會過度共享
    • 意思就是說在迴圈內部定義的變數,在迴圈外部依舊可以訪問

let存在的意義

  1. let宣告的變數擁有塊級作用域
    • let宣告的變數其作用域只是外層快,而不是外層函式
  2. let宣告的全域性變數不是全域性物件的屬性
    • 通過let宣告的全域性變數無法通過window.變數名進行訪問,其只存在於一個不存的作用域中
  3. 行如 for(let x in data)
    的迴圈在每次迭代時都會為 x 建立新的繫結
  4. let宣告的變數無法重新被定義

const的作用

  1. const就是用於定義常量的