function a(){
console.log('1');
}
function a(){
console.log('2');
}
var a;
console.log(typeof a); //function
a(); //2
函数提升的优先级高于变量提升,并且不会被同名变量的声明覆盖。两个同名函数声明,后声明的函数覆盖前者。
var c = 1;
function c(c){
console.log(c);
}
console.log(c); //1
c(2); //is not a function
但变量赋值后,同名函数被变量覆盖,此时c的值为1,而不是函数
本文探讨了JavaScript中函数提升和变量提升的规则,以及它们之间的优先级关系。当同名函数多次声明时,后声明的函数会覆盖前者。然而,如果变量之后被赋值为函数,那么该变量将覆盖同名函数,导致函数调用失败。理解这些概念对于编写健壮的JavaScript代码至关重要。

被折叠的 条评论
为什么被折叠?



