在全局范围内声明两个具有相同名称的函数时,将执行第二个
When declaring two functions with the same name in a global scope, the second one gets executed
function getResult(){
return 1;
}
alert(getResult()); //alerts 2
function getResult(){
return 2;
}
could anyone explain, how does this happen?
您最后声明的函数被视为最新函数。最新的总是先执行。您可以在声明之前调用的原因是因为提升。
提升简而言之:
在您的函数执行之前,所有变量和函数都已注册并可用,因此您可以在它们声明之前调用它们。
在所有变量可用的阶段,最新的将覆盖最旧的。这就是调用第二个函数的原因。第一个直接被覆盖了
请注意,这不适用于 const 和 let。仅使用 function
和 var
声明的函数和变量
function getResult(){
return 1;
}
alert(getResult()); //alerts 2
function getResult(){
return 2;
}
could anyone explain, how does this happen?
您最后声明的函数被视为最新函数。最新的总是先执行。您可以在声明之前调用的原因是因为提升。
提升简而言之:
在您的函数执行之前,所有变量和函数都已注册并可用,因此您可以在它们声明之前调用它们。
在所有变量可用的阶段,最新的将覆盖最旧的。这就是调用第二个函数的原因。第一个直接被覆盖了
请注意,这不适用于 const 和 let。仅使用 function
和 var