我也觉得都弹出2,let和var的区别在于块级作用域。解析如下:这里x函数没有涉及到闭包,因此只会使用全局的a变量。而无论y函数中是var还是let都不会影响到全局的a变量。相反如果去掉var ,在y函数中直接写a=1,则会影响到全局的a变量。