var let const 小结

122 阅读1分钟
ES5包括之前都是用var来声明,ES6出来后新增了let和const两种声明用法

var声明

  1. 只有在当前函数下声明的变量有效,包括代码块和{};不能跨函数访问;
  2. 不论是全局作用域还是局部作用域中,使用var声明的变量,都会被提升到作用的的最顶部,即变量提升;
  3. var在同一作用域中声明同一个变量,后面会覆盖前面;
  4. var定义的变量不初始化输出undefined。

let

  1. let是块级作用域,只在本代码块中有效,不能跨块访问,也不能跨函数访问;
  2. 如果在同一个作用域中某个变量已经存在,再次使用let关键字声明的话会报错;
  3. let定义的变量不初始化输出undefined。

const

  1. const是块级作用域,只在本代码块中有效,不能跨块访问,也不能跨函数访问;
  2. const声明指的是常量,常量一旦被定义就不能修改(此处有瑕疵,后面解释);
  3. 常量定义必须初始化,不初始化会报错;
  4. 在const一个对象时,里面的值是可以修改的,但不可以改变整个对象,即不能修改对象的指针。