描述下列代码的执行结果

25 阅读1分钟
foo(typeof a);

function foo(p) {
    console.log(this);
    console.log(p);
    console.log(typeof b);
    let b = 0;
}

image.png

window undefined 报错 报错,报错的位置在 console.log(typeof b); 报错原因:ReferenceError: Cannot access 'b' before initialization

考查的是 ES6 新增的声明变量关键字 let 以及暂时性死区的知识。let 和以前的 var关键字不一样,无法在 let 声明变量之前访问到该变量,所以在 typeof b 的地方就会报错。