var a = 10; function a(){} console.log(typeof a)
var a=10; function a(){} console.log(typeof a); 函数提升大于变量提升,变量提升会提升到除函数声明的后面;变量提升,但是赋值不提升、函数表达式亦是如此,所以我觉得应该是下面的步骤 function a(){} var a; a=10;//如果没有这一步赋值操作的话,类型还是function console.log(typeof a);//a=10 number 这边不是因为什么之后重声明才变为number,是因为变量赋值才变的 如果有多个var a ,那a的类型最后就会是最后赋值操作的参数类型。 如果有什么不对的地方,欢迎大家指出说的不到位或者有错的地方。
function a () {} var a a = 10 console.log(typeof a)变量a会覆盖函数a,输出结果为number。
let a = 10 function a () {} console.log(typeof a)