ES6(ECMAScript 6)笔记1-let和const

let命令

let用来声明变量,但声明的作用只在代码块内有效。

1
2
3
4
5
6
7
{
  let a = 10;
  var b = 1;
}

a // ReferenceError: a is not defined.
b // 1

for循环就很适合使用let命令,不会存在ES5中需要闭包解决的问题。

1
2
3
4
5
6
7
var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 6

不存在变量提升

1
2
3
4
function do_something() {
  console.log(foo); // ReferenceError
  let foo = 2;
}

不允许重复声明

1
2
3
4
5
6
7
8
9
10
11
// 报错
function () {
  let a = 10;
  var a = 1;
}

// 报错
function () {
  let a = 10;
  let a = 1;
}

const命令

用来声明常量,一旦声明,常量的值就不能改变了。

1
2
3
4
5
6
7
8
const PI = 3.1415;
PI // 3.1415

PI = 3;
PI // 3.1415

const PI = 3.1;
PI // 3.1415