返回后,什么都不应该起作用,因为我们正在退出该函数,但由于某种原因我们可以声明 一个函数。这与函数声明类型的冒泡函数有关吗?如果是的话,我们不应该先声明这个函数,然后重写为10吗?
let x = 3;
function fn() {
x = 10;
return;
function x() {
}
}
fn()
console.log(x); // 3
返回后,什么都不应该起作用,因为我们正在退出该函数,但由于某种原因我们可以声明 一个函数。这与函数声明类型的冒泡函数有关吗?如果是的话,我们不应该先声明这个函数,然后重写为10吗?
let x = 3;
function fn() {
x = 10;
return;
function x() {
}
}
fn()
console.log(x); // 3
首先,在执行之前,对函数的内容
fn进行编译。编译器读取整个函数体(在编译阶段,该位置return不会影响任何内容)并识别出内部声明了局部符号x。本地广告隐藏了全球广告。编译器不会x在主体内留下对全局的引用fn。执行时
fn,本地首先x接收函数的值(这是由于冒泡),然后接收 的值10。全局的x没有改变。函数的冒泡本身并不影响结果。如果没有浮现出来,局部符号就会隐藏全局符号。