因为在变量未初始化的情况下就访问变量
在使用let以及const声明变量不会提升,所以就会抛错,而使用var声明的变量,会声明提升,所以会打印出undefined
function test() { console.log(b); // undefined console.log(a); // 报错(Cannot access 'a' before initialization) let a = 'a'; var b = 'b'; } test()