葛乌
2016-04-25 22:27
我刚才试了,我声明一个变量var a;然后再继续声明function a(){};那么在控制台会输出typeof a 会是函数,接下里我改了一下,var a=1;继续输出,此时a是number;继续function a(){return 5;} 我强制输出a();控制台说a不是个函数。于是谁能解释一下。是因为function a(){}只有声明过程。没有执行过程吗?我把a 用函数表达式输出,此时才能返回a是个函数。
是的,function a(){}只有声明过程;
顺序是这样的:1.function a(){return 5;}进行函数声明;
2.var a被忽略;
3.var a=1使a被赋值为1,并覆盖掉了函数声明,使a变成了number
然后强制输出a()是执行函数的语句,a不是函数当然报错了~
这个我明白了
JavaScript深入浅出
281100 学习 · 1020 问题
相似问题