为了账号安全,请及时绑定邮箱和手机立即绑定

哪位大神回复一下!

我刚才试了,我声明一个变量var a;然后再继续声明function a(){};那么在控制台会输出typeof a 会是函数,接下里我改了一下,var a=1;继续输出,此时a是number;继续function a(){return 5;}   我强制输出a();控制台说a不是个函数。于是谁能解释一下。是因为function a(){}只有声明过程。没有执行过程吗?我把a 用函数表达式输出,此时才能返回a是个函数。

正在回答

2 回答

是的,function a(){}只有声明过程;

顺序是这样的:1.function a(){return 5;}进行函数声明;

                       2.var a被忽略;

                       3.var a=1使a被赋值为1,并覆盖掉了函数声明,使a变成了number

然后强制输出a()是执行函数的语句,a不是函数当然报错了~

3 回复 有任何疑惑可以回复我~
#1

葛乌 提问者

非常感谢!
2016-04-30 回复 有任何疑惑可以回复我~
#2

慕的地6791964 回复 葛乌 提问者

请问你用的是什么软件?
2017-05-01 回复 有任何疑惑可以回复我~

这个我明白了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

哪位大神回复一下!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信