let命令javascript
let 声明的变量只在它所在的代码块有效。java
//let 声明 只在当前做用域有效 var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6 //var 声明 在全局做用域有效 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10
let 不存在变量提高,在let声明以前使用变量,会报错ReferenceErrores6
// var 的状况 console.log(foo); // 输出undefined var foo = 2; // let 的状况 console.log(bar); // 报错ReferenceError let bar = 2;
let 不容许重复声明数组
// 报错 function () { let a = 10; var a = 1; } // 报错 function () { let a = 10; let a = 1; }
不能在函数内部从新声明参数数据结构
function func(arg) { let arg; // 报错 } function func(arg) { { let arg; // 不报错 } }
const 命令函数