let和const和var的区别

const 和 let 异同

不同点

  • let 定义变量可以只声明不赋值
  • const 定义常量声明时必须赋值,一旦定义不可轻易改变

相同点

解决 var 没有块作用域,、变量提升、可以重复声明的问题。 let 和 const 有自己的块作用域, 不存在变量提升问题, 同一块作用域中不可重复声明(会报错)。

let/const 和 var 区别

  • var 有变量提升,let/const 没有
  • let/const 的作用域是块,而 var 的作用域是函数
  • let/const 有暂时性死区,只要 let/const 声明的变量,在未声明之前使用或者赋值都会报错(ReferenceError)
  • let/const 不能被重复定义