var 定义的变量 没有块的概念 可以重复声明 不能跨函数访问
const 定义的常量 在声明时必须赋值 不然会报错 一旦赋值 不可修改
let 定义的变量 只有块级作用域能访问 不能重复声明 不能跨函数访问
{
var v = 1
let l = 2
const c = 3
//let v = 3 //报错
// c = 1 //报错
console.log(v) //1
console.log(l) //2
console.log(c) //3
}
console.log(v) //1
console.log(l) //报错 未找到
console.log(c) //报错 未找到 (报错之后不会在执行 所以c报错不会打印)