var、let、const 之间的区别和联系

let、const都是ES6中新增长的特性,都表示块级做用域,即它们只在最近的代码块中生效;markdown

let:

  • let 声明一个局部变量
  • 不存在变量提高,即便用的时候必须先声明
  • 同一个代码块中不能重复声明

const:

  • const声明一个局部常量
  • 声明的时候必需要赋值,赋值以后通常不可修改内存地址,可是能够修改属性成员。(即const声明一个对象时,对象里面的属性能够修改)
  • 通常使用大写命名
const NUM = 1;
NUM = 0;//报错

//可是若是声明的是一个对象
const OBJ_STUDENT = {name:'aaa'};
OBJ_STUDENT.name = 'bbb';//不报错
OBJ_STUDENT = {name:'ccc'};//报错
复制代码

var:

  • var 声明的是一个全局的变量,在var所在的函数内生效
  • 存在变量提高,即在未声明的时候使用这个变量会打印undefined
console.log(x);//undefined
var x = '全局变量';

//可是let会报错
console.log(x);//ReferenceError: x is not defined
let x = '全局变量';
复制代码
相关文章
相关标签/搜索