var let const的区别

52 阅读1分钟

var

  1. 声明提升但赋值不提升
  2. var声明的变量没有块级作用域的概念
  3. var可以重复声明同名变量,但后者会覆盖前者

let

  1. let声明的变量不会提升,在声明前使用无效
  2. let有块级作用域,只能在当前作用域内使用
  3. let不能重复声明变量

const

  1. 使用const声明的是常量,即定义后不能修改的值(这并不意味着他的值是死的,只不过是不能修改而已,也就是说,用const定义一个函数,这个函数的结果是可能会变的,但是这个函数名不变)
  2. const在定义的时候就要赋值,并且不能改动
  3. const也有块级作用域,只对当前代码块有效
  4. const也没有变量提升,也不能在当前作用域重复声明同一变量