局部作用域

    由于JavaScript的变量作用域实际上是函数内部,我们在 for 循环等语句块中是无法定义具有局部作用域的变量的:

    'use strict';



    function foo() {

    for (var i=0; i<100; i++) {

    //

    }

    i += 100; // 仍然可以引用变量i

    }

    为了解决块级作用域,ES6引入了新的关键字 let ,用 let 替代 var 可以申明一个块级作用域的变量:

    'use strict';



    function foo() {

    var sum = 0;

    for (let i=0; i<100; i++) {

    sum += i;

    }

    i += 1; // SyntaxError

    }