var let const 的区别?
var
- 可以重复声明相同名字的变量
- 声明的变量会变量提升,在声明该变量前可以访问该变量,可以先访问后声明
- 没有块级作用域,只有全局作用域和方法作用域
- 全局作用域下,声明的变量不会与window有映射,就是window上不会创建属性
let
- 只能先声明后访问,不存变量提升
- 相同作用域下不可以重复声明相同名称的变量
- 有块级作用域,例如出了for循环后就不可访问了
- 全局作用域下,声明的变量不会与window有映射,就是window上不会创建属性。
const
- 是常量,声明时必须赋值,赋值后不可改变(不可重新赋值),否则报错。
- 有块级作用域
- 相同作用域下不可重复声明相同名称常量
- 全局作用域下,声明的变量不会与window有映射,就是window上不会创建属性。