引自:http://es6.ruanyifeng.com

  • let
  • 块级作用域
  • const

1.let

let声明的变量只在它所在的代码块有效。

 for循环的计数器,就很合适使用let命令。

var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 6

注意:

1.没有变量的提升

2.不允许重复声明

2.块级作用域

ES5 只有全局作用域和函数作用域,es6增加了块级作用域,let实际上为 JavaScript 新增了块级作用域。

function f1() {
  let n = 5;
  if (true) {
    let n = 10;
  }
  console.log(n); // 5
}

3.const

const声明一个只读的常量。一旦声明,常量的值就不能改变。

const PI = 3.1415;
PI // 3.1415

PI = 3;
// TypeError: Assignment to constant variable.

const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。

const foo;
// SyntaxError: Missing initializer in const declaration

const的作用域与let命令相同:只在声明所在的块级作用域内有效。

const声明的常量,也与let一样不可重复声明。

const命令声明的常量也是不提升,

 

posted on 2017-09-13 17:45  坚持不懈❥  阅读(142)  评论(0编辑  收藏  举报