var
    - 作用域
    - 重复声明
    let
    - 块级作用域
    - 在同一个块中不能重复声明
    const
    - 声明同时必须赋值
    - 一旦声明不可改变(对象可以修改)
    - 块级作用域