let 变量名; 【1】拥有块级作用域(代码块,{}) 【2】没有变量提升(必须先声明,后使用) 【3】暂时性死区(在声明之前不能使用,谁用谁死) */
特点:有块级作用域
if (true) { var a = 10; } console.log(a) if (true) { let b = 20; } // console.log(b);// 报错 b is not defined // 应用1:防止循环的计数变量变成全局变量 for (var i = 0; i < 10; i++) { } console.log(i); // 10 for (let j = 0; j < 10; j++) { } console.log(j); // 报错
特点:没有变量提升
console.log(a); // undefined var a = 20; console.log(b); // 报错 let b = 30;
特点:暂时性死区
var temp = 'aoe' if (true) { console.log(temp) let temp = 'abc' }
还没有评论,来说两句吧...