var、let、const区别
var
1.var只有函数作用域,没有块作用域,可以声明全局/局部变量
2.var定义的变量需要初始化
3.可以重复定义,后定义的会覆盖先定义的
输出undefined:
后声明也是undefined:
全局与局部:
可重复定义,但会覆盖:
let
1.let是块作用域(不能跨块访问),对函数外部无影响
2.不能变量声明提前
3.不能重复定义
undefined:
后声明报错:
重复声明报错:
局部与全局:
const
1.const定义的变量不可以修改,并且必须进行初始化,一般声明常量(只读属性),const是块作用域,与let相同
2.不能变量声明提前
3.不能重复定义
报错:
正确:
重复赋值报错: