ES6 第一章 let和const命令 具体参照http://es6.ruanyifeng.com

时间:2024-07-26 10:06:20

1.let类似于var用用来定义变量

1)let没有预解析,不存在变量提升

// var 的情况
console.log(foo); // 输出undefined
var foo = 2; // let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;

2)let定义的变量在其定义之前使用都会报错,称为暂时性死区(TDZ)

var tmp = 123;
if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
}
3)不允许重复声明
用let定义的变量名不能重复再定义,如果定义就会报错。
4)块级作用域
for循环类似于一个父级作用域
for(i=0;i<3;i++){
  let i='abc';
  console.log(i);
}
//输出3次 abc
类似于
{
  let a=1;
    {
      let a=2;
      console.log(a);//2
  }
  console.log(a);//1
}

2.const用来定义常量

定义完必须有值不能更改。后赋值或重复赋值都会报错。

const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动