ES6学习之——let和const命令
let命令 基本用法 ES6新增,用来声明变量,用法类似 var ,所声明的变量,只在 let 命令所在的代码块内有效 { let a = 10; var b = 1; } a // a is not defined b // 1 let和var在for循环中的对比 // var声明 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 上面代码中,变量 i 是 var 声明的,在全局范围内都有效,所以全局只有一个变量 i 。每一次循环,变量 i 的值都会发生改变,而循环内被赋给数组 a 的 function 在运行时,会通过闭包读到这同一个变量 i ,导致最后输出的是最后一轮的 i 的值,也就是10。 而如果使用 let ,声明的变量仅在块级作用域内有效,最后输出的是6。 // let声明 var a = []; for (let i = 0; i < 10; i++) { a[i] = function() { console.log(i); }; } a[6](); // 6 上面代码中,变量 i 是 let 声明的,当前的 i 只在本轮循环有效,所以每一次循环的 i 其实都是一个新的变量,所以最后输出的是 6 。你可能会问