javascript中变量名和函数名重名

javascript中变量名和函数名重名

1、缘由

今天突然在复习javascript的时候发现一个比较有趣的问题就是,假如在声明的时候不小心设置了变量名和函数名重名的话,那么输出的时候会是什么样的结果呢,疑惑如下:

这个串代码执行完会报错 : a is not a function

2、解答

查找资料后,进行了代码测试,得到的答案如下:

知道以上的规则,上面的代码等同于 :

根据上述代码,var a=100就是相当于给a重新赋值了,所以会报错.

3.本地测试代码

一、当函数声明在前边的时候:

1、测试代码:

2、输出结果:

二、当函数声明在后边的时候:

1、测试代码:

2、输出结果: