你已经知道 JavaScript 引擎是通过变量环境实现函数级作用域的,那么 ES6 又是如何在函数级作用域的基础之上,实现对块级作用域的支持呢? function foo(){ var a = 1 let b = 2 { let b = 3 var c = 4 let d = 5 console.log(a)