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)