//不能穿透大括号 //没有变量声明提升 function f() { { let x; //console.log(x); { console.log(x); // this is ok since it's a block scoped name let x = "sneaky"; console.log(x); // error, was just defined with `const` above // x = "foo"; // console.log(x); } // this is ok since it was declared with `let` x = "bar"; console.log(x); // error, already declared above in this block //let x = "inner"; console.log(x); } } f();