var,let和const
ES6新增了let关键字用于声明变量,用法上和var类似,这里列举一些两者的区别。
let与var区别
let声明的变量只在它所在的代码块内有效:

因为上面的特性,所以let很适合在for循环中做计数器:

var声明的变量会被挂在到全局的window上,而let并不会:

let是function scope,而let是block scope
let不允许在同一个作用域内对同一个变量重复声明:

let不存在变量提升问题,必须先声明再使用:

let的作用域屏蔽造成临时性死区:

const定义常引用
常引用不允许修改

const和let一样都有作用域

引用的对象可以改变
常引用而非常变量


