var

  • 没有块级作用域的概念
  • 会被提升到定义函数的顶部
  • 可以重复声明

let

  • 有块级作用域
  • 不会被提升
  • 禁止重复声明

const

  • 有块级作用域
  • 不会被提升
  • 禁止重复声明
  • 其值不可更改
  • 必须进行初始化