使用“ let”和“ var”有什么区别?
ECMAScript 6引入 了 let 语句 。 我听说它被描述为“局部”变量,但是我仍然不太确定它的行为与 var 关键字有何不同。 有什么区别? 什么时候应该 let 在使用 var ? #1楼 范围规则 主要区别是作用域规则。 var 关键字声明的变量的作用域范围是立即函数主体(因此,函数作用域),而 let 变量的作用域范围是由 { } 表示的直接 封闭 块(因此,块作用域)。 function run() { var foo = "Foo"; let bar = "Bar"; console.log(foo, bar); { let baz = "Bazz"; console.log(baz); } console.log(baz); // ReferenceError } run(); 将 let 关键字引入该语言的原因是函数范围令人困惑,并且是JavaScript中错误的主要来源之一。 从 另一个stackoverflow问题 看这个示例: var funcs = []; // let's create 3 functions for (var i = 0; i < 3; i++) { // and store them in funcs funcs[i] = function() { // each should log its value. console