考虑以下代码:
function f1(p) {
function f2() {
console.log(p); //Output: 10
}
f2();
}
f1(10);
此代码输出为10。但是,如果我将其更改为以下代码,则:
function f1(p) {
function f2() {
debugger;
}
f2();
}
f1(10);
当我在控制台中调试代码时,如果尝试读取p,则会得到:
ReferenceError: p is not defined
为什么会这样呢?
p
可在中访问,f2
但因为您不使用p
,所以声明和解析完成p
后,似乎由于性能问题,解释器/编译器已将其删除f1
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句