var let const区别

  var let const
可否同一作用域下声明同名变量 可以 不可以 不可以
声明的变量是否会挂载到window上 不会 不会
声明变量是否存在变量提升 存在 不存在(变量必须声明之后才能使用) 不存在(变量必须声明之后才能使用)
声明的变量是否会形成块作用域 不会
声明变量之后能否更改 不能 不能
是否存在暂时性死区 不存在 存在 存在

1.变量提升:未声明该变量,却可以使用该未被声明的变量,提升的是声明

2.let 和 const 的作用域用法完全,但 const 声明的变量必须初始化,且初始化之后不能再次赋值(不可更改常量原始值,但可更改常量对象的属性和常量数组的元素)

原文地址:https://www.cnblogs.com/trojans/p/11910602.html