let VS const

  let 声明一个变量,变量存储可以改值
  const 声明的变量,一旦赋值,则不能再和其他值关联(不允许指针重新指向)

let VS var

  var 存在变量提升,而let不存在
  全局上下文中,基于var声明的变量,也相当于给GO(全局对象 window)新增一个树形,并且任何一个发生值得改变,另外一个也跟着变化;但是基于let声明的变量,就是全局变量和GO没有任何关系
  在相同的上下文中,let不允许重复声明,而var很松散,重复声明也无所谓,反正浏览器也只按照声明一次处理。
  暂时性死区 (浏览器暂存的bug)

console.log(n) console.log(typeof n)
console.log(typeof n) let n=10

  let/const/function会产生块级私有上下文,而var是不会的