var let const

451 阅读1分钟

var let const 区别

var

  • var 在全局作用域定义时,还会挂载到window(浏览器环境)上,生成全局变量
  • 可以重复声明,后面申明覆盖前面声明
  • 存在变量提升(自动把声明提到作用域顶部),不规范写法,易导致可读性差

let

  • 除了全局作用域和函数作用域外,还新增了块级作用域( { } )
  • 不能重复声明
  • 作用域内,声明语句前使用会报错(暂时性死区 temporal dead zone TDZ)

const

  • let 基础上,规定了申明后不可修改,用于声明常量
  • 声明后不可修改,必须声明时候赋值
  • 如果声明的是引用类型,保存的是引用地址,所以不能重新赋值,但是可以修改引用对象内部的属性