块级作用域
if(true){
let str="123";
console.log('if',str);
}
console.log('全局',str);
块级作用域
for(let i=0;i<10;i++){
console.log(i)
}
console.log(i);//未定义
不存在变量提升
console.log(i);
let i=1;
console.log(i);//1
"暂时性死区":用let声明的变量需要先声明后使用
var i=1;
if(true){
i=2;
let i=3;
//i=2;
//console.log(i);
}
不允许重复声明
let a=1;
let a=2;//重复了报错
使用let,const的声明的变量不属性顶层属性 ,返回undefined
let a=1;
console.log(window.a);//undefined
const a=1;
console.log(window.a);//undefined
var a=1;
console.log(window.a);//1
let案例<